I am not a Jboss expert. But, I read this in the free documentation (JBoss.3.0QuickStart.Draft3.pdf).
Page 114 in a section titled "Configuring Tomcat":
Java2ClassLoadingCompliance, enables the standard Java2 parent delegation class loading model rather than the servlet 2.3 load from war first model. This is true by default as loading from wars that include client jars with classes used by EJBs causes class loading conflicts. If you enable the servlet 2.3 class loading model by setting this flag to false, you will need to organize your deployment package to avoid duplicate classes in the deployment.
I cannot see exactly Why this works.. because the standard JBoss classloading is just flatter.. and should enable you to remove duplicates.. However it does!.. I wonder if there's something extra that Tomcat does to grab these classes and resources.. or perhaps there's a clash in the ext dir.??
I'd like to hear what you find out!!