"complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable."
Stallman was well aware that you need more than just the "C" files.
You can still drive a truck through it. Nothing in nature requires that the commands used to compile a program be entered into a script.
I'd argue that the definition in the GPL would cover command lines, even if not contained in scipts per se.
And human nature being what it is no-one would want to type
gcc -o prog <list of 15 object files> <list of 6 libraries>more than once or twice without putting it into a file.
It also assumes that the compiler is a platonic unchanging ideal, so he must have been unaware of Thompson's Turing Award lecture. It's obvious to anyone who has read it that if a password check can be changed by invisible code lurking inside the compiler, then any change whatsoever can be made in the same way; it doesn't even matter whether the compiler's source code is also published.
His blindness on this point may be due to an assumption that he controls the compiler, but even GNU developers think that GCC is doomed.
I doubt he was unaware but probably did not think it relevant because the GPL dates from a time where you would generally assume other people on the 'net - which was nascent, naive and mostly restricted to academia - would "do the right thing". I don't think it was because he thought he controlled the compiler. In fact the GNU project barely
had a compiler at the time.
But I think you do raise a valid point which is that few of the open source projects specify the build environment well enough, or even at all. Quite often interesting looking projects which compiled fine with gcc 2.x have not really been developed since and fail in later versions, or against later versions of libraries. Sometimes spectacularly in the case of libraries and don't get me started on trying to find the right version of auto<crap> for an old project
