It occurred to me that I wouldn't need to do this. I could use an external DNS service and have A and MX records point to my IP address, and just use a single view internally for local name resolution.
This is what I do. My DNS provider (eNom) has A (and CNAME) records that point to my external IP address, where requests are port-forwarded appropriately.
The DNS server on my home network also claims to be authoritative for those domains, and hands out the internal IP addresses. This means that internal clients see the internal IP addresses and external clients see the external address.
My MX records point at GMail.