I was actually sketching out an idea like this. Except that each file would have a header with a list of entries encrypted using public keys. When you found an entry it that you could decrypt, it would tell you how to reconstruct the desired data from rest of the file. The best part of it is that you have no idea what any of the other entries could produce. Your cat gif could contain a whistle blower's document.
You may be interested in Freenet. Data is distributed across nodes but the nodes don't know what they have. An individual file isn't necessarily entirely on one node, it could (and most likely is) distributed across many nodes. In order to retrieve data you need to know the key for that data. At that point you can start requesting the appropriate blocks from the network and reconstitute the file(s).