I think it was Adobe that forgot it was a company that makes tools. They did make it Flash versus HTML5, and are now realizing that they should have been agnostic as a toolmaker.
I too am implementing paperclip...but I am wondering about backing up the uploads. How do you backup those uploads? I was thinking that I would store the first copy on the host - then push them to s3 for backup (and maybe 1 other CDN, just to be ultra paranoid).
But, it seems to me, that if you are just passing through Heroku altogether - that removes one point of fault tolerance and redundancy - right?
I tend to think no. For a small site with few users, no one will care. Once a site has become large enough, downtime with press coverage seems to create a virtuous cycle of social proof, e.g. Twitter, Facebook, etc.
Most of these have the best support for PHP which may or may not work for your needs. Various free libraries have been released for other languages but 1) generally support only a few email providers and 2) may not be actively maintained. Octazen has a fee-based API which sounds great but I haven't used it.
I think the subtle point here is that users don't want bloated applications but
1) They will vocally advocate for additional features that meet their specific needs
2) They will buy upgrades (particularly of boxed software) based primarily on new/additional features
The nice thing is that this problem of desktop applications hasn't actually translated directly to the web. On the web, doing one thing well is much more valued on than on the desktop.
I suspect that this is because more users understand and feel comfortable with the web than feel comfortable with the non-browser desktop.
I think the key aspect is that adoption of web software is easy, and most web software (e.g. gmail, google maps, flickr, twitter) is free, or at least has a reasonably useful no-cost usage tier. This may contribute to users feeling they are less locked in to a single application, more able to switch to a competitor if need be, and more able to use additional software to provide additional functionality (e.g. twitpic + twitter).