Has thought been given, over the years, to extending bash to do what make does, in the obvious way that I am about to describe?
It would be a matter of having chosen build commands do nothing if their outputs are newer than their inputs. For example that is, cc file.c -o file.o should execute normally if file.c is the newer file but do nothing if file.o is newer. Then you would have a deterministic script to build a system that simply skipped steps determined to be unnecessary. It is possible to achieve this without changing bash but it seems like there would be leverage in having bash deliberately support this mode.