In general I have always believed that if you can keep a redirect in place indefinitely there is no harm in doing so. To some degree that might still be true today if, for example, you redirect a quality page or domain with a lot of incoming links. But what about lower quality content?
Scenario: You find 5 pages on your site with few incoming links and an obvious panda penalty judging from analytics. You set about creating a new quality page that better serves visitors and you redirect all 5 pages to your new wonderful goodness.
Do you - leave the redirects from low quality penalized pages in place indefinitely? Pro - no lost visitors, Con - you tell Google the low quality url is still on your site.
or do you - leave the redirects in place just long enough to see the old url disappear from google/bing/yahoo? Pro - you tell search that the low quality url is gone with a 404. Pro - the redirect was in place long enough to ensure that image credit on the old urls is moved to the new in image search. Con - the few incoming links that *might* have brought the occasional visitor will now return 404.
I'm leaning towards quick removal at this point. I don't want to send the message to search that my low quality urls still exist which is what happens when they redirect instead of disappear. I don't want to start out with a 404 until they drop from search because I want search to redirect image credit too, in case someone clicks on "visit page" or whatnot. What do you think? Post Panda - is quick 301 removal better when cleaning out the junk?