I think relays should be thought as ephemeral entities. Every client should store the data locally first. After storing the data locally, it should blast it to a bunch of relays that happen to be active at that particular moment, and other clients will receive these events from those relays.
Sounds like POSSE https://indieweb.org/POSSE
Didn't know about this term, but yes. This was the whole point of nostr: to 1) put you in control of your data and 2) make your data easily accessible and hard to censor.
How would you achieve 1) if you would not hold your data in the first place, anyway? How are you self-sovereign if you trust some random relays to hold your data forever?