The real problem with hosting Spree on Heroku is having to spend $100/m for an IP for SSL. The actual cost for setting up ELB instances to get extra IPs for SSL is $20/m. That's a problem when you want to set up a bunch of differently branded storefronts. It's the main reason why I'm doing DIY with http://github.com/wr0ngway/rubber/ instead of using Heroku for the spree project I'm working on right now.
SSL alone is as expensive as a 1.5 GB slice from slicehost. I know it's not really their fault, but they need to work with amazon to get several IPs for each of their images, or something.
For instance, what about Heroku/EC2 prohibits me from using Authorize.net as my payment processor, provided I never store card data?
The first is only hourly cron tasks which means doing sweeping every 15 minutes is not possible. Not terrible, but sometimes a showstopper if you're trying to do background tasks frequently.
The second is that it's a read-only filesystem which means you either don't use the filesystem for your work, or you use S3. S3 is great, but is another service you need to monitor and pay for. You also will need to employ other solutions to compress CSS, JS files, or to create a cache.
Third, there's no shell. There's a console, like the Rails console, but you're not going to be setting things up yourself.
Heroku is a heck of a platform. I run tons of stuff there, even on the free plans with no problems. However, the limitations can be showstoppers for you depending on 1. how much hackery you want to do and 2. if it's even possible.
I find that the read only FS is a good thing, decoupling storage from app servers really helps wrt to scaling.