well, it is a complicated function. At the very least, it is better than the old version.
That bug must have creeped in because it calls ppr again on the body if it needs to wrap. I'm not 100% sure how to fix it though. Maybe print the first and then map ppr over the rest?
The question is, how to get br-fns to properly indent their bodies. Maybe ppr needs an option to avoid printing the parens.