The structure of an EAR is affected by its metadata, so, I"m assuming that the EAR structure deployer has to parse the application.xml file if it exists.
FOr example, if application.xml file is present, then only those modules listed are components, if no application.xml file is present, then all top level things of the ear must be considered as a deployment, EXCEPT the lib/ directory. Also the lib/ directory is a default. application.xml also has metadata that can specify a lib directory within the ear.
I'm guessing some thought has been put into this, so would like your opinion.
That is correct, the ear deployer is a structure deployer that identifies valid deployments and the classpath.