S3 and EC2 are by design commodity, low level artifacts. Like any other commodity, you should always be shopping around.
The big issue with Amazon has always been their “roach motel” philosophy where data goes in but doesn’t come out. (ie they hose you with network costs)
If you have enough scale and enough dollars, it is often cheaper to build bespoke infrastructure vs renting somebody else’s at margin.
This is why many companies with a lot of money still rent their offices – even if they intend to stay in the (often customized) buildings so they don't need flexibility. It just would not make sense to buy and to bind the capital in a building, it can be invested in their core business with higher returns.
An exception might be made in cases where a company has suddenly so much money that investing it all in its core business might diminish the capital/return rate, eg. through the US tax break, where a company shifts the money stored oversee back to the US. This is why for Google it might make sense to buy property, even though its not their business: They just have to much money.
[1] S3 at 0.023/GB/month * 500 = $11.50
1. a nice web interface;
2. synchronisation;
3. an easy-to-understand pricing model;
4. tightly integrated desktop support (at least for OS X).