I read that mail discussion again and I now understand the whole issue. I also read up the Java EE6 spec (section 8.3) which mandates that the libraries in a RAR deployment be auto exported to whoever has that RAR as a classpath or as a library reference. I now understand your change and also the reason why the moduleSpecification.isRequiresTransitiveDependencies() is being ignored for system and user dependencies and only used for local dependencies. 

I have no objections for this PR being merged. However, would you or others mind if I replaced this PR with a PR of my own which in addition to doing what you have done here, also goes one step ahead and renames the ModuleSpecification#isRequiresTransitiveDependencies()  method to ModuleSpecification#isLocalDependenciesTransitive() to make it clear that the transitivity applies only to "local dependencies" of that module specification? My commit is here https://github.com/jaikiran/jboss-as/commit/58eb7b13ac28a7802756264de63f67c0c890432b.