Существуют прецеденты для использования существительного в Framework, например,
Enumerable.Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector)
Enumerable.Count<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
Enumerable.GroupBy<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector)
ConcurrentDictionary<TKey,TValue>.GetOrAdd(TKey key,
Func<TKey, TValue> valueFactory);
Существительное часто является подходящим глаголом с агентивным суффиксом .
В вашем примере я бы использовал что-то вроде loader
или, возможно, valueFactory
. Лично мне не нравится cacheLoader
, потому что, предположительно, вставка в кеш выполняет не вызывающий, а вызывающий.