2) not necessarily. When I developed Four Little Warriors I had some similar problem where entity functions continued running even after entity removal. The problem was, that at some point in the code, the my pointer could get wrecked and then would point to another entity.
The looping function checking for my therefore continued and so to say was reattached to a different entity.