So, in order to solve 1) and 2), we should return to what every other language does? That sounds like a design mistake...
What do you mean by "URLs are compact"? How can a URL be compact compared to the same URL in some sort of dependencies file? Unless you use the dependency once, of course, which is rare.
URLs and explicit versions in the import also encourage you to use several versions of the same dependency in your code, which is a very bad idea.
NPM’s model of referencing packages from central repositories is bad for many reasons proven over the years. But referencing GitHub scripts and arbitrary URLs is even worse.