Again, LC_CTYPE does *not* affect source file interpretation.
I understand what you're saying. What I am saying is that if this is how c99 behaves it's in conflict with POSIX because LC_CTYPE is exactly how source file interpretation is specified to be controlled: LC_CTYPE Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multi-byte characters in arguments and input files).
I think we should clearly update the documentation to reflect reality regarding source file encoding, and leave it strictly for wrappers such as "c99" to specify -finput-charset= options rather than leaving open the possibility that GCC's own default might change in future.
That sounds reasonable. Martin