нужна конкретизация вопроса
непонятен ни контекст исполнения, ни формат использования
это onClick, который пробрасывается пропсом от родителя или document.addEventListener который создается в useEffect у каждого компонента? А почему не window?
Все же зависит от контекста того что вы делаете. Если это например один и тот же обработчик, то лучше его вынести в родителя. Но если например это какая-то логика которая используется внутри только каждого дочернего компонента отдельно (изолированнно от других) то ее никак не вынести. Поэтому вопрос нужно дополнить данными о том что за обработчик и по какому событию он срабатывает
Чтоб на документе было 30 одинаковых обработчиков? В чём смысл?
Может достаточно из верхнеуровнего компонента повесить один обработчик? Делегирование, все дела
Ответ на ваш вопрос - можно, конечно, но лучше поискать более оптимизированное решение