> The key is to let the repo be a single comprehensive source of data for building arbitrary artifacts.
By that do you mean it's one way of doing it, or that it's the only way?
Seems clear to me that it's not the only way. For instance .Net code tends to be Git for the project source + NuGet for external dependencies. It works pretty well.