If you have a fqdn for a host and hostname -f does not return the fqdn, then your system is not configured correctly. This would likely cause errors or problems with other software as well.
Having a FQDN and a DNS entry are not the same thing. You can have a fqdn without a DNS entry, though it isn't very useful of course as nobody else can resolve the fqdn to an IP address (unless you put a manual entry in /etc/hosts of course).
There are only incidental relationships between FQDN and the ability to send/receive email. You definitely do not need a fqdn to send email and there are a number of ways to have email delivered to a machine without a fqdn or DNS entry e.g. fetchmail. mailhobs with local /etc/hosts entries with 192.168.x.x or 10.x.x.x addresses etc.
There are many different ways for a system to support sending/receiving email and it is extremely unlikely that Emacs will be able to determine this correctly automatically. Any attempt to do so will almost certainly be complex and error prone and a pain to maintain. Add to this that far fewer hosts actually do email anymore. 20 years ago, I always setup a local mail server on my system. Now I rarely do. ISPs now frequently block port 25 and most medium to large organisations have very strict policies in place to prevent users from setting up mail servers due to the frequency of misconfiguration that either caused errors or created an open mail relay which could be used for spam and potentially adversely impact on an organisations reputation or result i their mail being blackholed etc.
I think I'm with Stefan on this one. The only sane and maintainable solution is to have emacs check for an explicit mail address configuration set by the user and if none exists, prompt the user for one when sending email. In reality, you will probably have to prompt for the name of the mail server as well and possibly a password as many mail servers now use authenticated smtp and you cannot assume the local host has a configured MTA.
Or you just display a message saying to cut and paste your message into your preferred mail client and send it that way.
Tim