Shell scripts are additional complexity? I'm not sure what you mean. Adding structure reduces complexity.
The whole difference of Makefiles, their original idea was to not re-compile a target _file_ if it's already there. So if you need .PHONY -- you're using Makefiles wrongly.