This is just a thought for now, but I wonder how hard it would be to either use the Mono Compiler or write a new one while still outputting a Windows EXE?
The reason for this thought is that I see people "abusing" the C# language creatively to get some stuff like code contracts or aspect oriented programming up and running, and sometimes it feels like people are stretching too far.
The good thing about .net is that at the end, all we want is valid IL for the .net 2.0 CLR. However, the Microsoft C# compiler is closed and cannot be extended. Mixing different languages is only possible in different assemblies.
The thought (warning: May sound horrible) is to use a compiler that can be extended and run it as a sort of preprocessor. That way it would be possible to add new Keywords and language concepts while still returning valid IL.
The obvious downside is of course that a) it's not C# anymore but a C#-derivate that no one else understands, b) writing a compiler is hard as countless rules have to be respected to maintain a high quality and logical syntax.
But as said, that is only a thought for now. It's a little bit the same direction that Mono.Cecil takes, but a completely different approach.