I wonder why u haven't created registry for loaded xap's.
Currently XapModuleLoader catch only case if to modules from one xap are loaded at once.
But if the are loaded one by one, both of them will call webclient to load xap and will perform all assembly part loading logic.
Do you think it is issue or not? May be I'm missing something.