From an API point of view, it doesn't feel right to me to include isRemoved() check in isCached(key). If there are issues checking the remove status outside of isCached(key), isCached(key) should probably change its signature and description.