Once the kernel is compiled, it doesn't leave "traces" of its compilation environment around to taint the running kernel experience.
I'd say it's just a matter of expedience. The kernel also contains bits of assembly, and assembly isn't exactly portable either. Perhaps if the "mission" of the kernel was to write a kernel which could be compiled on multiple C compilers, the complaint would fall on more attentive ears.