This is system does not meet the following goals stated by Nash here on 9/21/17:
Builds are hermetic. If I check out code and you check out the same code, our builds should produce the same sequence of bits as output every single time.
Builds are authoritative. If I check out project-A and you checkout project-B and we both build output-C as a part of our build, then our build of output-C must be hermetic.
Builds are unambiguous. If I check out project-A and you checkout project-B, then the dependency graphs of each project must be subgraphs of the entire project's dependency graph.
The build system needs to be updated to meet these goals.