if your Config module loads a configuration file it will still reload that file every time the module is called
I don't think that's the clearest way to put that. When a module is "use"d, it's import() routine (if any) is normally called, but modules themselves aren't "called". In this case, whether the configuration file is loaded more than once depends on where exactly the loading takes place. If it is done in a subroutine called by each using module (including import()), then the config file will be loaded each time. If, on the other hand, the loading is done by the main code of the Config module, it won't, since that code is only run the first time the module is used. My guess is that the latter is the case.