I think that Git submodules are to blame. I think that the idea is great, but the implementation is cumbersome. If they were better to use it would solve a lot of these problems.
I think it's irrelevant. If your build depends on inputs from two repositories, it's the same level of complexity as having the inputs all come from one repository. You might have two .git directories, but if the code is coupled, it's just a monorepo in two directories.
Ultimately the problem is in scaling the number of build inputs, not the number of .git directories.
Ultimately the problem is in scaling the number of build inputs, not the number of .git directories.