Another important use case ls build templates: you create a new module, it should be able to reuse a simple template with predefined values, etc... and then just override a few values here and there. That scenario is a nightmare in all build systems I can think of.