as I said, for historical reasons. There are (as always) pros and cons with every implementation. Here I think prevailed the "doesn't matter if cache gets large" over "I must check for every call if there are keys ready to be removed" (can be tricky to implement something like that with costant response times). Don't get my words as set in stone, there could have been some others reason too.
--