Bitcoin addresses are pseudonymous, in other words they aren't linked to anybody's ID without that user somehow linking the address to their ID (for example by withdrawing from an exchange service where they have provided their ID to the exchange).
There are various known tricks/tools to reveal IP addresses of transactions and to link various addresses to a wallet if they are all in the same actual wallet. Each have varying degrees of success. But at the end of the day if an address is used only once and isn't part of a wallet with other addresses in it, plus you use tools like Tor and mixing services it would be very difficult to link future addresses to the source address while still knowing for certain that the addresses belong to the same owner. Potentially impossible depending on the tools/services used. I'm not saying Bitcoin is anonymous, it's not at all, the entire transaction history of every address is entirely visible to every man, and his dog. But it is pseudonymous if used correctly and that's what is important for your question. The funds can be traced through the addresses, but tying the owner to those addresses is what's important.
For example, note that this is not advice, but if you sent your identifiable purchased funds to an exchange, gambling site, dark net site, or other site that does not require ID verification. Then withdraw those funds in multiple transactions to different addresses in different wallets, using Tor or similar perhaps. Then those funds would be indistinguishable from the source funds in most cases. But, do your research if extreme privacy is important to you. Most of us are happy just pushing the funds through a simple mixer for a little bit of semi-privacy.