I think these two expressions are exactly equivalent from a language semantics point of view. Both ways involve short-circuiting.
I am kind of flabbergasted that Andrew's answer already has ten upvotes; it sounds like nonsense to me, but perhaps I really am missing something subtle here.
EDIT
So just to sum up:
The OP's question asks "why does this optimization happen".
In fact there's no 'optimization' happening. The two C# source codes are logically equivalent. ".Net Reflector" or whatever other disassembly tool is perhaps as likely to decompile the same IL into one or the other. At the IL level, there's just a bunch of conditional jumps, and so there's not necessarily a way to know "which way is if and which is else" or other similar DeMorgan equivalences.
Fascinatingly, people are wildly happy to vote up or down answers to this question, even when (or perhaps because) the original question does not make much sense (or relies on a faulty assumption).
Happily, eventually the wisdom of the crowds (and smart individuals like @Mehrdad) prevails. Hurray for StackOverflow!
(I am making my answer a wiki, because I don't want rep for "storytelling about a question" when rep should be awarded to "good answers to a question". But I think the story of this question is interesting.)