What about creating local caches of repositories? Assuming you have a package manager that can be easily replicated, this feels pretty ideal. Unfortunately, as far as I know it’s not trivial (only possible) to make a replica repo for tools like NPM. Still, maybe that’s where we had best focus energy?
Big disadvantages of the monolithic repo are: (a) massive resource usage that you can’t mitigate, because source control systems like git are designed to have the repo be the atomic unit; (b) you lose the structure of the dependencies, so updating downstream gets harder, and submitting patches is harder, and the software just becomes a lot less flexible in places it needs to be flexible.
If git submodules were easier to deal with (and tooling can make them so ..), and if all of our package managers had on-disk and local-intranet caches .. would this still be a problem?