These are great questions!! :)
> Can you treat all code like 3rd party dependencies?
Yes, but there are trade-offs. Discoverability, enforcing hard deadlines on global changes, style consistency, etc.
> Is it impossible to do these things with multi-repo?
No, but there are trade-offs to consider.
> If it's hard, is it "so hard" that it justifies the complexity?
Hitting the nail on the head; there are trade-offs :)
> Are these things necessary, if other systems get away without it?
There are many stable equilibria; open source ecosystem evolved one solution and large companies evolved another, because they have been subject to very different constraints. The organization of the open source projects is extremely different from the organization of 100+ engineer companies, even if the contributor headcounts are similar.
For me, the the semantic distinction between monorepos and multirepos is the same as the distinction between internal and 3rd party dependencies. Does your team want to treat other teams as a 3rd party dependency? The correct answer depends on company culture, etc. It's a set of tradeoffs, including transparency over privacy, consistency over freedom, collaboration over compartmentalization.
With monorepos, you can gain a little privacy, freedom, and compartmentalization by being clever, but get the rest for cheap; vice versa for multirepos. It's trading one set of problems for another. I'd challenge the base assumption that multirepos are "simpler", they're just more tolerant of chaos, in a way that's very valuable for the open source community.
I hope we've not been talking past each other, I really like the ideas your raising! :)