Primal basically uses a caching relay where they collect notes from some relays and you interact with their cache relay only.
Other clients like Damus interact with the relays you add.
And other clients like Amethyst use the outbox model where you read and write to inbox and outbox relays of each npub, so all over Nostr.