Sorry but I don't get this fully: can't a hyphen be part of such mangled names?
I'm actually not sure but I have never seen it done.
And any reflection of the module name would also be just a string which need not be a valid identifier no?
Reflection would be a string, but it is often mixed in and the other uses like name disambiguation is still identifier.