I'll start looking at different implementations and see what I find.
Discussion
I just assume the relay ignores duplicate subids. This is reasonable to me
What about when you unfollow someone? Wouldn't that require a REQ update? Ignoring duplicate subids would mean you would need to close the REQ and open a new one no?
You could just keep the REQ running and filter out unfollowed people locally.
And when you follow someone and want to load their notes from that same relay you could maybe close the first REQ and start a new one with "since":
Okay here are my findings:
- strfry seems to treat REQs with the same subID as replaceable: https://github.com/hoytech/strfry/blob/32a367738c6db7430780058c4a6c98b271af73b2/src/QueryScheduler.h#L23
- gnost-relay just overwrites, doesn't check for duplicates at all: https://github.com/barkyq/gnost-relay/blob/817ff549b2f4b078d984abec9105010555e76e80/main.go#L661
- nostr-rs-relay replaces: https://git.sr.ht/~gheartsfield/nostr-rs-relay/tree/master/item/src/conn.rs#L118
- nostream ignores duplicates: https://github.com/cameri/nostream/blob/b6133a18fde1bba396bc04419adc39f186ea8eb0/src/handlers/subscribe-message-handler.ts#L92
- nnostr replaces: https://github.com/Kukks/NNostr/blob/78753daa9c0a81adebab1b50ebea923de654036a/Relay/StateManager.cs#L56
So 4/5 I've looked at replace, only one rejects duplicates.