How is this not simply solved by having Nostr clients refresh when they receive an updated kind 3? Nostr clients should keep an subscription open to the current user's relays to receive updated metadata (profile) and following list (kind 3) and relay list (kind 10002).
If any of those are received, simply update locally. Should not merge, should replace. Nostria keeps the original event itself, but if a client parse the content and store in a normalized structure, they should still remove/add when such an event is received.
Then in theory, following lists shouldn't be replaced by older ones, only if a device is offline, you edit your list and it publishes a new list when it comes online. That could also be solved by clients, by ensuring to first retrieve latest following list before publishing offline-generated events.
Right? Or am I not seeing the problem here? I understand that there has been issues, but the problem in my opinion, is clients, not the protocol. I truly believe another event kind is not the right solution to clients implementing existing protocol in a "problematic" manner.
(Yes, I know kind 3 has been renamed "contact list" and not following list, but I've always used that name).