The problem with grunt is that it doesn't detect if files have changed, it therefore does not replace ant, make, scons or any of the other build tools that don't build things that don't need to be built.
Yes this is not the same thing. Grunt rebuilds everything for tasks, and does not selectively build only targets that have had dependencies change. Make doesn't require any kind of running process for this.
Grunt has a core file selection abstraction. Adding mtime source/destination checks and removing files from the list as needed should let them add this without issue. When I looked at the file internals for a bug I encountered I didn't see why it wasn't added but I was/am in the middle of a different project so I didn't take the time to figure out why.
The lack is not a great reason to write yet another build system.
I'd agree. It's more like a composable set of shell scripts at the moment. How things fit together differs quite a bit from other build systems I've used (make, rake, ant) and after a significant amount of cursing, I've come around to it.