>
It's precisely so that users could have their local versions loaded in> preference to the bundled ones, I think.
But there are plenty of other ways to do that. This makes it a little too easy to override important core libraries, IMO.
realgud is just an example. It uses names like js.el and info.el because they are supposed to be loaded via `load-relative`, rather than required directly, but subdirs.el placing them at the front of the load path is what's causing trouble. Rocky could add 'realgud-' to the beginning of every elisp file in the application, but `load-relative` and the directory structure makes that unnecessary.
You might argue that every elisp file in an application should be named to avoid conflicts with core libraries, but the only reason I see for that requirement is the current ordering of the load path.
And beyond the inconvenience caused by programs using `load-relative`, or programs just accidentally using the same name as a core library, it seems possible that a malicious developer could tuck their own `url.el` into an otherwise innocuous package and cause some mayhem.