Ahh, sendmail. The article was enlightening and as I can see by some of the comments, a lot of why it did things the way it did may not make sense in a post rfc 733 world. I worked on its predecessor MMDF while at SRI and the comments around separate processes had a different context in those days. MMDF was a set of separate processes "similar" to postfix but for a different reason. We only had 40+ K and something like sendmail would be too large for the address space. Sendmail had the luxury of a 32 bit vm to play in so... Production rules were nice in comparison to the dance we had to do before that. Imagine mapping uucp<-> rfc733 <-> decnet <-> all-in-one <-> (can't remember what the other ones were anymore) and sending from one end of that chain to the other and getting a reply back that actually worked.
As for the comments about m4, C, .cf files, and buffer overflows... As in Vint Cerf's comments about IPv4 etc. at LCA, it seemed like a good idea at the time and, hey, much to our amazement, the world jumped aboard. And they all actually (still) work. What may appear to be sins 30 years on, were the best ideas we could come up with at the time. When I added dbm to manage alias lists in mmdf it was a great idea given what was before (flat files), but in light of today and things like sqlite, not so hot. Then again, without dbm going beyond it's sell-by date, how would we know that sqlite would be such a good idea? Imagine a network that is a "failure" because a 32 bit address space is too small! ;) In both cases, such "failure" is because they worked more than well enough to push us to the next step.