Fair enough; that example was poorly formatted for that exact code. That approach is far more useful when there is more than just a return in each branch and the program must choose one of several relatively expensive calculations. The formatting I used is better when the expressions are long enough that if (...) { return A } will not fit on one line, but I would collect the conditions into a "table" if they fit. Like:
if (EXPR1) { return A }
elsif (EXPR2) { return B }
elsif (EXPR3) { return C }
else { die "unmatched case" }
That said, while I see the point that else can be unnecessary, I still consider forbidding it to be absurd. I also expect that a future optimizing compiler could make use of an if-elsif chain more easily, although rewriting multiple if (...) { ...; return } into if-elsif is only slightly more complex.