Why can not just a simple _warning_ message be displayed at the end of the run instead? That does not punish anyone, and users are informed that they installed something that has stale cruft in it, and they can easilly do `make uninstall', `make all' or whatever to fix it; or simply ignore it.
The old behaviour of `make install' _is_ correct, erroring out because some file is stale is utterly wrong, and you must be able to edit the source tree without having to rerun `make all', `autoreconf', etc and have `make install' work. It does not matter if it is extracted from a tarball, or from a VCS. That the maintainer then is to lazy (as the example you gave of m4 using a version of autoconf that was not in autoconf's vcs) to bother updating his version data is not a reason to punish everyone else for something that is correct behaviour from `make install'.