Until recently, when I was updating the inventory for www.negustore.com I used to delete old product pages, that I wasn't carrying any longer. To be honest, I didn't realize I was doing that, instead I discovered it through analytics.
So here I was, yanking out pages that were already indexed by Google, and sending incoming traffic to my custom 404 handler. After the required head-smack I changed my code to keep the product pages and change the availability to "not available" and remove the add to cart button. That's the sensible thing to do. Lots of people may still be interested in the product specs, even if they are not on sales anymore. Better yet I could add some adsense pointing to places that sells them.
Interesting thought, it'd be nice if adsense would give us more control to what's included in each ad block, e.g. product for sale, instead of redundant product info, in my case.
I'm still wondering, how does removing of pages that were previously indexed affect the overall page rank of the site. Common sense it tells it can't be good. The last thing a search engine wants is to send people over to broken links.
Same thing goes for moving things around, if possible don't do it, if there's no choice, use 302 permanent redirects handlers that still listen to the old URLs until they are removed from the indexes.