Почему ini_set в проекте устанавливается при определенном событии? Правильно ли это?
И меняют на все время, а не на время конкретной операции? 
Меняют как раз таки на время, а не на "всегда"ini_setУстанавливает значение заданной настройки конфигурации. Настройка будет хранить установленное значение пока выполняется скрипт. После завершения работы скрипта значение настройки вернется к исходному.
Это нужно, в том случае, когда нам надо загрузить что-то, что грузится долго и чтобы не отпал скрипт по таймауту
 Устанавливает значение заданной настройки конфигурации. Настройка будет хранить установленное значение пока выполняется скрипт. После завершения работы скрипта значение настройки вернется к исходному. 
php.net/manual/ru/function.ini-set.php