David,
The touch steps are present to ensure dependency management and resolution during the build process remains consistent. There are a few problems using a simple Makefile solution when dealing with modern Fortran.
First, if we were just saying that certain Fortran 90+ source files rely on certain module files, we would have no problem except in cases where said module didn't exist, so...
Second, we'd need a build step saying that said missing module relied on the creation of a certain object file being generated. That sounds reasonable; each module from within a given Fortran source file would just rely on the compilation of said source file. However, like you've pointed out, GNU Fortran wouldn't update the resultant module necessarily after compiling if the interface hadn't changed. So conceptually make could fail because, after seeing that a module file was older than the object file associated with the same source file, it would produce an error.
What the touch step does is simply update the module's time stamp to ensure that it is at least as new as its dependent object file to make sure this odd error doesn't occur.
The solution to all of the above would be to either: a) use a bit more rugged make system or b) not use make at all. As for the first option, Simply Fortran uses Open Watcom Make, which is strictly file-based. It does not normally deal with symbolic targets like, perhaps, GNU Make does. Being so file-centric makes the steps described above necessary in a way (or at least historically so in Simply Fortran's case).
The second option would probably be superior (eliminating Simply Fortran's use of make and makefiles entirely). You might notice that the same steps are actually necessary just for checking program syntax. Simply Fortran internally computes dependencies (obviously) and then directs its syntax engine to update syntax checks accordingly when files are modified. This process could be extended to actually perform compilation as well rather than using make.
Jeff Armstrong
Approximatrix, LLC