That's something I should have been more clear about. All this is taking place in a mod_perl setting. Previous to my change, the object was expected to be destroyed at the end of each request. Since my change, it would still live on between requests, until the next request came along and replaced it in the package variable (which is too late for the new object to benefit from the experience of the old object).
Perhaps I could get away with saying that "never" is an exaggeration. Strictly speaking, each one was destroyed, just not on time.