As Heroku has a Postgres backend, I imagine you could also install PG4WP (http://www.hawkix.net/tag/pg4wp/) which is a plugin to get Wordpress working with Postgres DBs, and just deploy directly using Heroku alone.
You may run into problems with any other plugins which use MySQL specific SQL syntax though.
No, but you can pay someone $100 to install it for you and more or less forget it afterwards (since even WP version updates are mostly automatic from the admin UI --and even themes can be installed that way now).
Or, even better, use a Linode image with WP already installed, boot it and you're in business.
Heroku has addons (which are pretty fundamental to the system - even 'custom domains' is an addon, albeit first-party) which provide MySQL - it's even stated in the article...
This is killer for small wordpress sites. You essentially get free custom domain hosting until it hits a traffic level where it needs something more significant, then you can re-evaluate your options.
On the Cedar stack, the slug is still read-only, but the ephemeral filesystem is writable. The slug is what gets deployed on each new dyno spawned. The ephemeral filesystem is the individual file system on each dyno. So a plugin like WP Super Cache would be able to write to the file system, but that cache would only exist for the individual dyno that wrote it.
The only plugin available explicitly states (on the Settings page, after you install and avtiavate it) that it doesn't upload directly to S3. It has to upload to your server first.
edit: actually, I think the upload to S3 button is different from upload media button. That's why I didn't see it.
http://bitnami.org/stack/wordpress#cloudImage