The part of the PEAR system which sets up the class path (implemented in buildComponentClassPath method) can be run in two modes, one for "packaging" and the other for use at "runtime". The difference is that the "runtime" just uses the specified classpath, while the "packaging" creates a classpath adding jars found in the lib/ directory.
The Maven plugin to create a package should use the "packaging" version. This will help with backwards compatibility.
While changing things, the Maven plugin should use a definite order for building the classpath, starting with the actual artifact, any entries in a user-specified classpath, and then the jars from the lib directory, last (in arbitrary order). And it should not add things to the classpath that are already there (remove duplicates).