Except bitcoins are completely fungible. Once the bitcoin is transferred in the wallet, you can no longer make any difference with the other bitcoins in the wallet ; it has no distinct identity anymore.
Think transaction into a bank account : you cannot separate the money that was transfered in from what was already there.
But when you transfer BTC out, even if it's in the exact amount of the tainted coins transferred in, how do you decide whether the outgoing coins represent the tainted ones or the untainted ones?
Say there's a 50 BTC untainted wallet, and tainted 1 BTC is transferred in, then 1 BTC is transferred out. How do you decide whether that outgoing 1 BTC was drawn on the tainted portion or the untainted portion of the account?
Always regards the last bitcoins as the tainted ones. Local wallets could simply treat tainted bitcoins as not existing, thus removing that annoyance too.
Think transaction into a bank account : you cannot separate the money that was transfered in from what was already there.
We can taint accounts, but not individual coins.