I think Hudson automatically preserves the lastSuccessfulBuild of a job in case
it has failed a number of times in a row. But apparently it does not preserve
the lastStableBuild in case it has been unstable for a while! This is a major
problem because it makes it unsafe to use lastStableBuild in URLs - you could
get FileNotFoundException's (should really be 404s) if a test is left to fail
for too long.
"Discard Old Builds" should never discard the last stable build (if there was one).