I think there are some inaccuracies in what you said. Please correct me if I’m wrong.
“Full privacy” is an overstatement. CoinJoin is a mixing scheme. If the anonymity set is not good, then privacy is not good. It can be vulnerable to amount correlation, post-mix consolidation, address reuse, and timing/Sybil attacks.
This is a valid observation, but PayJoin still can be used to improve privacy if:
- Bob uses a UTXO that doesn’t deanonymize a different counterparty (e.g., Bob’s own transfer from an exchange)
- Bob uses a UTXO already associated with Charlie.
This breaks the common-input-ownership heuristic, obscures the payment amount, and can mislead change-identification heuristics.
The example you provide is the worst case example. It’s not a PayJoin issue, but rather a UX issue with UTXO management and privacy. But it’s a fair point for real world usage. So I’m glad you pointed it out.
Not a PayJoin issue, but an important point for real world usage. Appreciate you mentioning this.
The word “just” makes it seem like a convenience feature. Making it easier to use the same address without linking transactions is huge for privacy. As a side effect, this also reduces public key exposure for unspent outputs. Exposed public keys can become an issue with quantum computers.