Many standard programs (many GNU tools, including GCC) produce output in UTF-8 or some other non-empty encoding. CCL::MONITOR-EXTERNAL-PROCESS just interprets each octet it receives as a character-code; ideally, there should be some way of specifying how those octets encode characters.
Non-interactive input to external processes sometimes involves writing a lisp stream's
contents to a temporary file and passing a descriptor to that file as the subprocess'
standard input; similarly, there should be some way of ensuring that that input is encoded according to the external program's expectations.
How significant a problem this is may depend on how visible it is, which in turn depends on lots of factors ("locales", terminal/Emacs settings) outside of the lisp's control. It seems desirable that the lisp offer a way of doing (its part of) this right.