ยง5 of rfc 2821 spells out how to do the lookup. smtpd should do that. if there are any huristics to apply while running the lookup, it would make sense to me to do as sendmail/postifix/qmail do. smtp is an interface to the world. being different isn't a virtue in this case.
Until you explain precisely which part of rfc 2821 you claim that smtp.c does not follow and which part of smtp.c is not following it, I don't see a point to continuing this conversation. The particular case that I was talking about is when dns returns "dns: dns failure", meaning that looking up the MX record produced an error (like maybe the DNS server choked on the request), not that the lookup returned "there are no MX records". My reading of the RFC is that it does not cover this case. Russ
