Кэширование вообще несет в себе одну главную проблему: поддержка актуальности.
Если вы имеете механизмы поддержи актуальности кэша, или имеете возможность не учитывать изменения происходящие за время между двумя обновлениями кэша (у вас это время равно работе php скрипта, следующий запуск сгенерирует новый кэш), то такой кэш можно использовать.
Меморизация функций (кэширование результатов в зависимости от аргументов) требует выполнение двух ограничений:
1. Функция всегда возвращает одинаковый результат при одинаковых аргументах (не зависит от состояния системы или этими изменениями можно пренебречь)
2. Функция никогда не изменяет внутренние состояние системы (если функция была меморизирована, т.е. результат работы был сохранен в словарь, ключем которого является список аргументов, то дальнейшего вызова этой функции происходить не будет)
Если эти ограничения выполняются, то возможна меморизация функции.
Ответьте самостоятельно можете ли вы использовать кэш и меморизацию исходя из этих критериев.