Is peering EBGP from my public facing routers on the Internet and my internal routers a bad idea?
This is a standard operation and can be convenient for the setup. I've worked in environments that used eBGP extensively internally in a large network to avoid the complications of a large iBGP setup with router reflection. And doing so just between the internal router reflectors and the upstream peerings is a standard solution as well.
I second the concern to take great care in managing the NAT setup on your multiple firewalls. You have multiple paths out to both the internet and your CDN resources so the chance of asymmetrical traffic between these East/West setups is very high.
thus on the outbound traffic you need to use NAT pools only advertised from the side where traffic leaves the network to insure it returns to the correct firewall session.
For the DMZ traffic you will have the same issue for inbound flows. You may need to do a source NAT for the inbound traffic to make sure the return from your DMZ servers goes back out the same firewall as the inbound flow.