I think you might be able to just start and end with the laundry cleaners. Blockchain.info could just decide that they won't wash coins that they know were from a high profile hack like this.
I don't think it needs to be binary. Anyone today can choose to accept stolen or blood money. But I think you could create a distributed dye pack. It could just be an API that you query with a coin and receive a signed answer. Your Bitcoin client can report saying e.g. 'Blockchain.info thinks that this coin may be stolen. Accept anyway? Y/N' and leave it up to the user to decide. The downside is that the next person you try to give the coin to could decide that they trust Blockchain.info and not accept your money.
It's a democracy. If the masses decide that Blockchain.info is blocking coins that weren't stolen for some nefarious reason, they can just ignore their warning.
The question is: do the majority of bitcoin users even care if they are using stolen coins?