In many AOEs, byte-code level manipulation is required. It can be used to implement an interception framework, or to directly implement the weaver's intrumentation of the programs. In some cases, this byte-code level manipulation can be done at class's load-time because the AOP instrumentations are quite simple. Thus, most of the AOEs use the flexible class-loading architecture of Java.
However, several environments also use the class-loaders to implement their own functionalities. For instance, distributed environnments may generate the stubs using specific class loaders. Within these environments, the AOE's class-loading mechanism could lead to system crashes because of class-loaders incompatibilities.
Consequently, we think that it could be important to normalize a class-loading framework that would be flexible enough to easily enable different class loaders comming from different environment to cooperate in a safe way.