I suspect there are two distinct issues.

The first is that when you have a language designed to target a virtual machine, which is what C# is, then efforts to compile it all the way to assembly can result in bloated code. If the compiler doesn't get a lot of use by the great unwashed, then the compilation step probably needs optimizing anyway. Icon suffers from both halves of this problem.

The second issue is that Microsoft's C compilers don't produce wonderfully compact assembly. Now, my observations are from several years ago, remember, but the amount of compiler cruft at the start and end of a procedure in assembly was quite amazing. And it was worse because it was in Windows. Coupled with the fact that Microsoft applications seem to be Very Large for their function, well, now we have a situation.

Wade.