If you read a history of Uber getting to monorepos [1], [2], it is obviously that they did it as an attempt to make their shared spaghetti code a bit more structured. Now they are writing articles about fighting a consequences of that move. For me the moral is: never go monorepo. It is at least counterproductive, but more like destructive even for large capable teams.
[1] https://eng.uber.com/ios-monorepo/
[2] https://eng.uber.com/android-engineering-code-monorepo/