Ok, well a combination of circumstances conspired against me.
The short answer is that postfix by default sets mynetworks_style = subnet. Because smtpd_recipient_restrictions has permit_mynetworks before reject_unath_destination, this means anybody sending from a client IP in my subnet will bounce rather than reject.
The proper fix is to set mynetworks_style = host
The long answer on why this was difficult for me to figure out is that because I'm at a university (lots of mail traffic), we have gateway SMTP servers that have the official MX record for my domain. The gatways then forward to Zimbra, so effectively everything I received was considered in my subnet, hence all the bounces! Doh!
Even though postfix configures mynetworks_style = subnet by default, I think this really isn't the best default given the nature of spam these days. I think you should start with the most restrictive setting and loosen it up as appropriate. I think I might file a bug to request that as a default. At a minimum, I'll add this to the wiki.
For thoroughness, the only change needed is /opt/zimbra/conf/zmmta.conf (add the following line right before 'RESTART mta'):
Code:
POSTCONF mynetworks_style host
Then 'postfix reload' for changes to take effect.