Earlier quoted context omitted.
I don't think that's the same at all. The hallmark of a compiler isn't its command line arguments, it's the output. I think you would have more than a little difficulty arguing that all C compilers produce the same output.
Generally people don't look at the output of the compiler, but the output of the compiled program. New compilers for an existing language generally have to reproduce the behavior produced by the existing compiler; they can't, for example, return the last-evaluated value in "a && b" instead of 0 or 1, even though that is almost always more useful. (You could say, "Well, they're just complying with the standard," but t…
This is wrong because you are viewing the task of a compiler in terms of the result of the compiled program. A compiler is simply a translator from one language to another. The result of the program is the result of an interpreter running the code, not the compiler. Deviation from correct output in the compiled code is not only not allowed, it is deemed a bug in that code.
The unique part of different compilers is not the output of the compiled code they produce but the compiled code itself. All compilers should produce code that produces the same result if they are taking in the same input, by definition.