Первоначально, конечно, я немного сопротивлялся:
1. По большому счету, конечно, хуки — это грязные функции.
2. Функции для хуков (useEffect, useCallback, и т.п.) внутри компонентов инстанцируются с каждым вызовом.
Но это чисто психологические проблемы:
1. Не пиши с сайд-эффектами — не будет сайд-эффектов.
2. Инженеры V8 не дураки, разрулят на уровне рантайма (если еще не).