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.
LOL .... it's funny, way back I loved C and to this day I will code in C or in C# but not in C++ unless I am forced to.... I have never liked what they did with C++ and never found a real world case where I could not write what I needed with C if I had to use C or C++
as for speed well .net can be faster or slower depending on what is being done how it's done and many other factors.
runtime speed not the speed of the compiler.
compiler speed -- well as was posted what has to be done to compile C / C++ is way different than .net
also remember that a .net compiler only generates IL not native code. a C/C++ compiler does generate native code.