I suppose the "real" reason you should not send from a cluster is that it could be hard to determine which sql instance in the cluster is sending the mail.
A service isnt that bad though and using LLBLGen it should be a really quick solution.
The company that I work for now had me write a service to monitor all of our hosted platforms and send mail for various operations. I ended up writing a multi threaded service that would get data from various sql DBs at various time intervals. The service would then take the retreived data and create MSMQ commands that would be parsed by another service and the mail would be sent.
It was a little OTT probably, but its completely configurable and extensible, i.e. the service is controlled from a config file, and it does more than send mail, like kick off batch jobs, do data imports / exports, move data from system to system, expose remote object hooks, etc.
Its just too bad that in the next year I will be phasing out the services and replacing them with biztalk 2004.