Bitcoin currently does not check whether transactions received from the P2P network contain spends from your own addresses. Presumably because this was considered an impossible situation, but it happens when people copy wallet.dat files around.
This checking is done anyway when rescanning, and a full rescan of the entire realnet blockchain currently takes 11s on my old laptop, so I think the overhead of doing this check on incoming transactions as well, is very limited.
This issue was mentioned here before: http://bitcointalk.org/index.php?topic=3638.msg52145#msg52145
Pull request is here: https://github.com/bitcoin/bitcoin/pull/157