So what does make (the took is not called Makefile, btw) "wrong". Where could one improve on it?
1. Syntax. Makefiles aren't parseable and have some at least unexpected syntactic properties.
2. Dependency detection: AFAIK any make will always use a timestamp and the precision varies a lot. A checksum or at least guaranteed resolution would be great. Also, you can't depend on directories.
3. Dynamics (this is going to be contested): Changing dependencies and tasks at runtime is possible with GNU make, but not ideal.
Taskfile improves on problem 1 but probably worsens everything else.