I think servers should just become routers/relays, with data and logic stored within nodes/peers. I never thought this was viable until a realized how well nostr relays worked as a NAT workaround.
this is just a half baked idea but there might be something to it.
I like the store-and-forward functionality of nostr without the permanence. Some kind of p2p protocol with state. Maybe im talking crazy. Ill stop now.