all depends on access requirements
sending data to an external cloud provider may look cheap, but if it means you can only push and pull data at a few megabytes/second because of the latency to the remote provider a lot of folks will likely keep stuff on site for performance, maybe encrypt+ship stuff to external cloud provider for stuff with really low access rates.
An example I give people is the main data center for my org is in Atlanta with a 1 gigabit uplink to a tier 1 ISP. Transfer rates to S3's east region for a single stream connection taps out at about 5 megabytes/second(current test is tapped out at 3MB/sec). It seems S3's providers are filtering way upstream as my traceroute to them dies after a few hops and less than 1 millisecond. I want to say before this filtering it was about 15-20ms away.