Figuring out quickly what needs to be rebuilt for massive builds like this isn't trivial, but that's essentially the one important thing that ninja does.
Also see:
... What mechanisms/tricks speed up builds? Or is it just the "simplicity" that is the BFD?
Edit: It sure would have been helpful if somewhere was stated: "the build system of Chrome":-)
That statement indicates a huge difference between some rando build system on someone's personal project, and a build system on operating-system-size codebase that is over a decade old.
Ninja seems to be better suited for big projects, where make's slowness in dependency resolution shows. Ninja files also look easier to generate automatically.
I have a project with dozens of C/C++/asm/precompiled libraries, a few thousand source files in all.
I would have trouble writing Makefile(s) for everything that would even be correct, let alone performant, either by hand or generated. But I have a set of Python scripts to generate a big Ninja build file and it all works very nicely.