One comment mentions Chris Lattner's
What Every C Programmer Should Know About Undefined Behavior [1], which is probably a better explanation to why compilers want to exploit UB including signed overflow. I think ryg's explanation is one more obscure case where UB helps, rather than a main reason.
[1] http://blog.llvm.org/2011/05/what-every-c-programmer-should-...