Even if it was a really wallet to wallet transfer you can't go blocking them. If you did then every future legitimate user of Bitcoin would have the onus on them to check the entire history of every coin received in the transaction to ensure their new coins aren't one of the stolen ones. What if the same coin is transferred a hundred times through private transactions or OTC exchange then a couple of years later the newest owner goes to MtGox to cash it out? Our new owner, 100 transactions removed from the theft, with no knowledge of the theft suddenly loses his bitcoins?
If I had to deal with that risk I know I'd be a lot more reluctant to accept bitcoins as payment. Then you have the question of who decides that coin is in fact stolen? Some independent body to arbitrate claims of theft and maintain a 'stolen coin' register? As soon as you do that you break the P2P model. Who will trust the arbitrator? Who will believe the arbitrator actually knows 100% whether a theft occurred? Couldn't you acheive a theft by registering some of you past coins as stolen in a false claim so they are grabbed back for you as soon as they pass through an exchange?
No, the solution is simple, people have to take responsibility for their own security. If you keep you coins privately, secure your wallet properly. If you pass them to an exchange to hold on your behalf then understand the risk involved, minimize as much as possible then accept that risk. Sensible people already do this with fiat currency. You don't leave you wallet on the dashboard of an unlocked car. You give your money to some bloke on the street to hang on to for you, you put it in a bank which you know has decent security. It's not a big leap from that ingrained culture to being conscious of digital security.