I ask because from what I understand from Google's monorepo, it should be easy for engineers to take direct dependencies on whatever they want.
Of course TF is an exported out library so things might be different, but surely it won't then be a good example of Google's DNA?
Not correct. The dependency system supports visibility restrictions - you can take direct dependencies to anything only if you're in your own experimental tree. Otherwise package authors can control access.
You can see that even in the Bazel: https://docs.bazel.build/versions/master/visibility.html
(google employee)
It's not like most people would want more complexity (at least I hope not), but somehow it kept happening, and I feel at least some of it is cultural.
1) They hire a lot of smart but inexperienced people. I've noticed that those kinds of programmers often write clever and overengineered things, which means overly complex.
2) They get promoted for creating complicated things. They don't get promoted for writing simple things.