Nim is statically typed, unlike Python if you call a function from the wrong module you will not compile.
Always prefixing with module name does not play well with the unified call syntax of Nim. Lastly, on big projects you can choose to use modulename.function(arg0, arg1, ...) in your codebase. But like code style, linting and code organization, this is a social contract between all contributors. Nim gives you the choice between using the Python syntax or a lightweight syntax, you're free to enforce the module.function(arg0, arg1, ...) in your code. Also, C has been doing it that way for 30+ years. Now that said, I agree that it's less easy when reading random code on Github, however just looking at arguments' types should help knowing which module the function came from. On your machine you have your editor that does that for you.
