Two modules with the same name in one program

It seems like doing this is problematic in several ways.

First, if the modules are created in the same directory, then the name.mod files will overwrite each other. Only one would be available at any moment, presumably the last one created, and it would not matter if the USE statement allowed a rename, the correct name.mod file might no longer even exist.

Second, if they aren’t in the same directory, then eventually any global symbols that are generated by the name mangling will result in conflicts within the loader. Or, if the *.o files from the two directories are archived together in the same library, then subprograms in the second one would overwrite those in the first one.

Are there practical ways to work around these issues? By practical, I mean easier than just renaming the modules (and their USE statements).