ok. I am just guessing that the C++ compiler, having been written in c++, is impossible to refactor.
Nice theory, except the C# compiler is written in C++ too (Mono's C# compiler is written in C#, but MS.Net's isn't).
It's C++'s insane complexity, I tell you. C++'s grammar isn't even LALR, so you can't use automated compiler generation tools like yacc or bison to create a parser for it. It is just stupidly convoluted in many places.