gift wraps only obscure the sender from upstream, they still leak the recipient, if i understand how they work, and if the relay accepting the event is a paid member they have to use a known identity and thus effectively leak the downstream source
the hardest part of solving this problem has to do with maintaining state, and the only reasonably secure solution for that is application specific data so it transits across multiple machines with only the nsec as the linking point
the only really almost perfect solution requires the relays to only give out ASD to users specified in the pubkey field, then the relays can be moderately secure repositories of this state and for extra security, clients could use state stored on one relay but use that state on another
i am a little familiar with MLS, it requires some state to be shared between the members of a chat as well
i haven't tackled the problem because it is a pretty hard problem to solve given the stateless, relay based architecture of nostr, but i think it will be solved
i do wish that more clients would git r done and get authing working so that private personal relay caches could actually be secured without them not being reachable from the internet