I'm currently working on a comparatively large webapp built in Angular and it was after about 7 months into the project that we started realising it's pitfalls, and it was very difficult to abandon it then.
So we worked it around by: 1) using one-way binding (or bindonce to be exact) to reduce watches 2) avoiding un-necessary $apply() and using $digest() carefully if required 3) using ng-boilerplate for scaffolding 4) defining our own style guides/coding conventions/design patterns to overcome Angular's bad parts 5) frequent code-reviews that made sure new team members are upto speed with the above techniques
luckily we haven't ran into much issues after that :)