Much of our C# release code is built with the \'Optimize code\' option turned off. I believe this is to allow code built in Release mode to be debugged more easily.
The full details are available at http://blogs.msdn.com/jaybaz_ms/archive/2004/06/28/168314.aspx.
In brief...
In managed code, the JITter in the runtime does nearly all the optimization. The difference in generated IL from this flag is pretty small.