Do you know how queuing works? It is so trivial to implement a queue system, that is bounded by time, so these DoS can't happen. It would make this theoretical DoS vulnerability unable to be execute.
Yes, I do. And so does Slickage:
There are ways to mitigate the CPU issue by locking it down to a few or just one core but that comes with its own trade offs. The speed at which the emails are being sent out may be drastically lower. If the email isn't time-sensitive but contains sensitive information, this is fine. But what if a system wide breach of the DB were to occur and all user's login/pass were compromised. A time-sensitive and possibly information sensitive email needs to go out...
Maybe it can be tried out later once the main features are done. The server currently sends an average of about 20 mails per minute, which is not so bad. Though troubles might start occurring if this ever increased to a few mails per second (over a long period of time), as public-key crypto is extremely slow. No amount of software trickery is going to help if the hardware just can't keep up.
Remember, the sweet part about Node.js is that it practically forces you to design your application in such a way that it can be scaled to multiple servers. It would be nice if you didn't have to add another server for cost reasons, but the option is certainly available.