This article got me wondering if AOP could be suffering from second system syndrome. AOP does seem to address some of the shortcomings of OOP, but maybe it's too complex for its own good.

C++ was a big improvement over C, but its power was so broad that it made code maintenance difficult. If you liked operator overloading, you'll love pointcuts! And that, I think, is my main concern with AOP. Just reading the source code no longer tells you what the code will do. An evil genius can intercept and override fields and methods. But then, I've always favored Hume over Kant.