Good question. Is the obsolete asset obsoleted by something that you have, or by something that you don`t have? If it is obsoleted by something that you do not have, that is correct behavior, as one or more of your routes might need it until you do fetch the update. If, on the other hand, it caches an asset that has been obsoleted by something that you do have, there is no point in caching it.
@pware, you have that right, especially about some people actually choosing the older asset for one reason or another, except for the case where the asset that does the obsoleting is also present. In that singular case, the old one is never used, so there is no point in caching it. So does it get cached anyway, and if so, why?