Sure, you can define it on the class instead of passing it in, but having multiple instances of the same module alive is ruled out.
I know this won't work with an application like PipeWorks Prattler demo, but in my case I can honestly treat each core sub-application as a singleton.
Precisely. You choose how to handle this yourself. Just like the NAME constant idiom for Mediators and Proxies, if you only ever need one instance of a core then you can do just what you've described. But if you need multiple instances, (as do Prattler and Modularity) then you need to make the multitonKey unique.