As others have said, most modern quality compilers will do the same thing, regardless of how the function is coded. The choices are stylistic, not functional.

Those who dislike multiple returns from functions would probably do this;
Code:
bool function ()
{
	bool retval = false;
        if (a > 0)
            retval = max(a);
        else if (a < 0)
            retval = min(a);
        return retval;
}
Again, any reasonably modern/quality compiler will probably do the same with this as with other examples above.

The reason for omitting redundant elses in code is related to proveability and elimination of dead code: it is more difficult to formally prove if a redundant else clause is or is not entered.