Good post. I am still hopeful that a large scale "backwards" build-system can be made ergonomic enough to be used on even small projects.
If Bazel didn't have so many gotchas, it could be the one:
cc_library(
hdrs = [ "app.h" ],
srcs = [ "app.cc" ],
)