I used it for several years inside Google, and TBH it was often painful in the ways external users have described in this thread. When I was doing something very "normal" from the point of view of Google's monolithic codebase, i.e. targeting a C++ binary intended to run on Google's distributed computing platform, I found it smooth enough, if awfully verbose. When I was doing something less vanilla, but not necessarily uncommon, e.g. targeting Android, iOS, Windows, it was painful, and I spent a lot of time working around it or understanding the chains/mountains of clever things others had built to work around it.
I understood some of the design decisions and tradeoffs for why it works the way it does, but I didn't like it. I certainly wouldn't reach for it for a personal project. Possibly I still just didn't "get it". I've used dozens* of build systems at this point, but hey.
* possibly exaggerating