SERVICE CONTRACTS. Yes, yes, and yes again.
Jeff Davis is picking up that package, BTW, and we've chatted about having it enforce service contracts and also about providing a high-level means to define contracts and their implementations (i.e. remove the redudantly boring coding task of writing definitions of methods and their parameters as a set of INSERT SQL statements in both PG and Oracle).
Anyway ... ns_sendmail is written in Tcl, Til, and if you look you'll see it depends on some low-level SMTP protocol handling Tcl procs.
Beyond the issues you raise ns_sendmail is slow as it always builds a socket, does the SMTP stuff, then tears down the socket for the given message. This is fine for single messages (even those with lots of recipients, of course) but not for a bunch of messages sent out at once, say a bunch of daily digests built for a bunch of forums.
It would be quite simple to bulk-mail by plugging into the low-level SMTP code and only opening the socket once while sending everything that needs sending.