Why is it important that storage/compute be in the same box? Isn't it desirable for there to be a "service boundary" between block storage, file storage, object storage, etc, and the consumers?
If that boundary is desirable, why would it matter where the storage resources are located? Wouldn't that be an implementation detail?