Just to emphasize one of Bill's points.
A lot of the aspects we have are proven
PRODUCTION implementations from our EJB container.
Whether AOP applies to non-system aspects
is another question.
System aspects deal mainly with context
rather than data.
Bill mentioned billing.
Constraint validation would be another,
a sort of business level "assert".
Letting the POJO get on with the job of doing
rather than deciding whether it should.
You can build your own OOP framework for this,
AOP is much more flexible. It handles
the plumbing for you.
But it may be too flexible if you have lost
static type checking.