насколько я помню, в реакте происходит ререндер (вызов функции компонента) при изменении стейта или пропсов. Если вы как-то измените "б", не произойдет ререндер сам по себе. То что эта зависимость находится в useEffect говорит о том, что при следующем рендере, когда будут сравниваться предыдущие значения зависимостей с текущими, если ссылка/значение не изменилось - то колбек, который передается в useEffect первым аргументом не будет вызван на данном этапе