I agree on this. Angular is awesome for organizing large JS, and making re-useable components. Directives are a killer feature, along with DI (to facilitate testing) and 2-way binding (to eliminate all the boilerplate glue you'd have to write with something like Backbone). The team I'm on recently set up a fantastic Grunt build that incorporates Jade, Stylus, Angular, Google Closure Compiler along with testing infrastructure that works with CI/Jenkins using Mocha, Phantom, Sinon, Chai. It makes developing web apps fun again.
Right now, we don't pull in any other libraries aside from Angular. We've found we don't need jQuery anymore, and are able to build up re-useable widgets with directives and use them across projects.
Re-usable widgets with directives sounds great but the problem I have (with widgets in general?) is that every situation requires a slightly different widget which means the directive gets polluted with conditionals and stuff. For me it sounds good in theory but never works in practice.
Right now, we don't pull in any other libraries aside from Angular. We've found we don't need jQuery anymore, and are able to build up re-useable widgets with directives and use them across projects.