Not an answer to your question but BTC does not really have wallets. Someone just signs a number of BTCs with his private key and your public key so the only way to sign it again is with your private key. This is essentially how it "moves" to "someone".
Some other DTLs (blockchains) actually have wallets/accounts with properties where you can disable incoming funds/add a name/change the password and such stuff.
Unlike Ethereum, Bitcoin addresses are just a hash of a public key. The sent Bitcoins are unspent outputs that you can selectively (depends on the wallet) decide not to use.
That would work. But then there's also the question if the received transaction counts as taxable income in the jurisdiction of the receiver. If that's the case and if they received a very significant amount they would be forced to sell some of the coins so that they can pay the tax for them.
Also there is a good question is there some limit or ratio of tainted coins that would be considered non incriminating. Or if there isn't would single satoshi taint all coins? If there were wouldn't dilution of funds be possible? That is wash them by sending to wallets with enough funds...
That's assuming a BTC miner even agrees to process the transaction. Why would a BTC miner want to deal with the headache of tainted bitcoins? It's such a problem that Marathon Digital Holdings, a major bitcoin miner, has stated they will refuse to process transactions from tainted addresses. In the near future, I expect more mining pools to do the same.
Would you return stolen goods to the thief? How about return it to the owner/authorities. May not be simple but certainly better than sending it back. If all else fail there are black hole addresses to forever lock the BTCs.
what is tracked is outputs and inputs, not addresses. addresses are derived from a public key or a script.
when a block is mined, an output is created, outputs can only be spent once. a bitcoin transaction is just a list of existing outputs (inputs) and new outputs to create (outputs). each output is created with a lock script, to spend the output you must provide the unlock script which normally contains at least a signature and a public key
returning the output that corresponds to the unwanted transaction should do
Would you pay the transaction fee from the returned funds, washing a fraction of it through mining? Or pay for it out of your own utxo, potentially leading to a griefing attack?