You're not requesting the item, but that means the object requesting the item has to managing fetching the item itself from cache only when certain methods are called and not others (ie. ->get() and isHit()).

If an implementation doesn't do this and always gets it from storage it's a performance hit.

I don't see the advantage of having delete() on the item class, given the extra complexity this entails. Also it makes multiple delete much harder to implement and likely to be a completely different API too.