The primary cause of dependency hell comes from installing and using global dependencies because there's no way to predetermine all of the dependencies that every module and/or application on a system will use.
Thr Javascript ecosystem actively discourages using global dependencies except for CLI tooling.
This is talking specifically about an optimization problem. How to minimize source size by only inporting code that is used directly in the appplication.
AFAIK, no other platforms don't attempt to solve this problem because it's a non-issue except where you're sending code over a network to be executed remotely.
For example, imagine if you had to send the entire Java Runtime Environment over the wire every time you loaded a website.
JSPM already uses a flat dependency structure. If you look at how it maps dependencies (and specific versions of dependencies) in config.js it makes a lot of sense. The only feature it's missing is the ability to easily search and list multiple versions of the same dependency.