При оптимизации в вашем случае GenATR будет пересчитываться всегда, даже если Period не изменился. А при передаче делегата в кеш, будет проводится сравнение, и если в кеше уже есть посчитанный вариант, то повторно он считаться не будет.