It's not a secret that a single contract could potentially store quite a large volume of data (1, 2). Of course, it takes some gas, but it doesn't seem to cap strictly the overall volume of data to be stored in the entire network. There are also recommended ways to avoid that (like IPFS / Swarm), but again they're not restrictive. Even being inefficient, these data consuming contracts can be created and filled with data and kept in the depth of the network for times.
Now, assuming that blockchain is distributed, how are we going to handle e.g. a few TB heavy contracts? Does it mean, the network would need to distribute these terabytes across all the node to function properly? Maybe there's some sort of retention for such "lost stones"?
Or am I missing a point?