на самом деле реакт максимально тупой не умеет распознавать какие компоненты должны ререндерится а какие нет. поэтому есть компоненты (обычно в либах) которые изкоробки имплементят shouldComponentUpdate(ака React.memo) обычно со ссылочными проверками на каждый проп. когда ты коллбек передаешь каждый раз новый у тебя shouldComponentUpdate всегда будет возвращать true тем самым ререндер будет происходит для этого компонента всегда. useCallback это лечит