There are wallet like Wasabi and joinmarket-clientserver with a single UI for managing coins and anonymize coins that are then difficult for an outsider to connect to each other.
Even without these privacy-focused wallets, you can use an HD wallet, where "child addresses" derived from a never-directly-used root key cannot be connected by a third party, unless you do something to connect them, by e.g. transacting with coins from both wallets from the same IP or in the same transaction.
Bitcoin avoids the double-spending problem by using a public ledger. This means all bitcoin transactions are known to any observer. There is no way round it. The best you can hope for is some "anonymity through obscurity" but this only gives a false sense of anonymity.
On Ethereum you can break the chain by using Tornado Cash which uses zero knowledge proofs with a secret, anonymity sets and time to make it impossible to trace a link.
Monero and Grin/Beam are also public ledgers. But they are harder to deanonymize. You brought a non-sequitur.
The CoinJoin paper details the level of anonymity that it can offer. I could cite it to you here, but I am not convinced that you would read it if I did.
The level of anonymity it can offer is zero. All you can do is obscure the recipient of an outgoing payment or the sender of an incoming payment. We still know all the cash flows in and out of every single address in the network.
That's not how Bitcoin works. You're conflating receiving addresses with wallets.
And in the PayPal use case, you wouldn't even see a single receiving address, as it's entirely opaque to that and it'd all be handled in some internal PayPal ledger. The receiver of the payment would only see a transfer to them denominated in local fiat currency. They might not even know the source of the funds was crypto at all.