It isn't always that straightforward. For example:
if (a)
return (some && complicated || boolean && calculation);
else
return (some || other && boolean || calculation);
edit: I suppose you can get rid of the "else", but you shouldn't have to sacrifice readability for a compiler shortcoming. I'm with mdasen; the compiler should figure it out.