I find necessary that CCache of course returns you the error output of the cached file when it retrieves a previously compiled file from the cache.
In many cases, ccache is used together with IceCC for cached and distributed compilation.
In some cases, if there are problems in any node when compiling the file, icecc sends those errors to the standard error and compiles locally, which can endup in a successful compilation. When you just recompile the same code, everything will be retrieved from cache, together with the IceCC errors, which in this case make no sense because the file is not compiled remotely (actually the file is not even compiled).
The similar problem for distcc was solved many years ago: ccache sets the environment variable called UNCACHED_ERR_FD to a file descriptor to which distcc sends error messages it does not want to be cached by ccache.
I think that IceCC should be modified to do the same. Does that sound reasonable?
It seems so. I'll comment that to the IceCC developers then.