One of the ways in which my PHP coding style has evolved is the way in which long statements can be split over several lines. This takes advantage of the free-form nature of PHP, and saves the need to create intermediate variables that are only used once; it also encourages staying within reasonable character margins, so as to reduce the need for horizontal scrolling in an IDE. I suspect this approach been inspired by (or necessitated by!) using Propel, and recently more so after chainable Query objects were added in version 1.5.
Turns out that the engine is putting in a semicolon after the return statement because the statement would operate fine on its own – this is called implicit semicolon insertion. Thankfully JSLint catches this fine (note to self: must start using that properly).
A demo of this little gotcha can be found here.