Impossible for 100% sure. Even if apps were perfect, the network never is.
I agree, I think client apps should maybe persist last 10 versions they created or similar. Then it something breaks you can go to the app that was last correct and hit restore.
As a relay operator, I have backups. But most relays implementations replace meta events without keeping old (from what I’ve seen). As a normal user I have no access to an old state, as querying relays means the newest broken one. So per client app makes sense.