Nostr doesn't even have the decoupling afforded by what we typically think of when we think of federated networks (email, activitypub, matrix). If you and another party aren't using the same relay, there is 0 way for you to interact. It assumes either you pre-agree on a relay (sticky defaults encouraging centralization) or shotgun messages to many relays (economies of scale encourgaing centralization). The protocol explicitly forbids relays from forwarding to each other.
Nostr is a very simple protocol that could have been invented in essence in 1995. There's a reason it wasn't invented until recently, because it's difficult to build robust protocols with good guarantees about discoverability and reliability with a foundation that is as limited as it is.
This is not true. Read up on the outbox model. I have linked it elsewhere in replies in this thread.
You post to your own preferred relays, as well as to the preferred relays of others who are involved in the conversation, as well as to a couple of global relays for easy discoverability.
These global relays are useful, but are interchangeable and totally replaceable. As soon as you've connected with someone you can retrieve their updates, because you know their preferred relays, and can query them directly.
That's exactly what I'm talking about with having pre-agreed relays. Those relays become preferred as a sticky default, especially with low-sophistication users that don't have organic onboarding paths away from the sticky defaults.
Incorrect.
Everyone can announce to the network where they read/write from. Clients can figure out (based on the people you follow) from which relays to get the content.
I've been using it like this for nearly a year. It works