As I understand System, it is the current system's implementation of the Loader. It may need additional functions and properties to do its job. In particular our root ModuleSymbol arrives with a URL, not a name. We have to convert it to a name to register it. The standard loader does not deal with URLs (called address) directly, only names. It calls the resolve() function of the System to convert a name to a URL but internally it does not need to go the other direction. 

So we don't need to put this function on System, but we do need it at runtime.