As the author of a build system, which took 5 years to bring to completion, and is now used in commercial applications, I feel like this list is not that helpful.
A modern build system does sacrifice generality in order to improve performance and simplicity.
e.g. A build graph with cycles is non-deterministic, which is not a great property of a reliable and repeatable build tool.
Most modern build tools will impose limitations to respect people's sanity, and I'm personally of the opinion that a build system should really expose high level rules for the most common tasks.