I don't think we should bother supporting this case.  It looks like we always call IdentityCache.fetch_multi and IdentityCache.fetch with a block within IdentityCache don't use this directly in Shopify.  Removing this means we could remove support for cache.read and cache.read_multi, which simplifies MemoizedCacheProxy.  After that, I think CAS support could be implemented more cleanly by a CacheFetcher class that could get used by MemoizedCacheProxy to separate memoization and CAS support.