Никогда не нравились громоздкие конструкции проверки наличия закешированных данных. Поэтому с радостью использую подход, реализованный в Laravel:
laravel.com/docs/cache/usage
Достигнуто избавление от громоздкой конструкции, приведенной в ваших примерах, и при этом сохранена краткость и понятность выполняемых действий.
Ваш вопрос скорее идеологический, восходящий корнями к вопросу «толстые/тонкие контроллеры/модели». Вот пост по теме у Макарова:
rmcreative.ru/blog/post/tonkie-i-tolstye-modeli