war / web deployments are by default child first (parent-first=false), see servlet spec.
How do you know that the wrong Hibernate classes are picked up?
Can you try this with the latest JBossAS6_CR1?
My guess is that the Hibernate classes are picked up from CL domain's cache.
See ClassLoaderDomain::checkCacheAfter.
You will have to change the CL domain's parent policy,
so that "after" filter also filters out Hibernate packages / classes.
This feature is already available in AS6_CR1, under https://jira.jboss.org/browse/JBDEPLOY-266.
* http://community.jboss.org/wiki/JBoss5custommetadatafiles (see jboss-classloading-domain.xml)