I make things work.
Heroku is a beautiful hosting platform. I thoroughly enjoy using it.
However, to use a custom domain it requires you to use a
CNAME entry to point your domain to their internal name for your application.
CNAMES are a hard redirect from one FQDN to another. In Heroku's case, they maintain their internal IPs so you don't have to worry about changing A-records if something on their end is modified.
This is fine and dandy...unless you have MX records on that domain.
As a professional, I don't make such mistakes. But let's say I did. Let's say that I launched a new site and for a month didn't realize that emails to my custom domain had stopped.
Let's say that it wasn't until a kind person informed me that their emails were bouncing that I was aware of the issue.
I would, naturally, check my MX records - they would still be there, safe and sound. When I went to verify them in my Google Console, however, I would be told they couldn't be found.
In frustration and confusion I would Google "Are CNAMEs and MX records mutually exclusive?". The answer would, of course, be "Yes".
After finding this out, I would undoubtedly move my domain over to DNS Simple so I could take advantage of their ALIAS record-type.
The ALIAS record, I would find, is a CNAME-like entry that simply pings the associated domain name to get the IP address and converts to an A-record. This would allow someone to have a Heroku-compatible custom domain alongside some MX records.
I hope you found this hypothetical journey diverting.