а им и не нужно быть "умными" или "глупыми". все что им нужно делать - отрисовывать данные и реагировать на их изменения. ну иногда сообщать о маунте/анмаунте. все остальное вполне спокойно выносится на уровень стейт менеджера
не очень я все это понимаю, я в целом за глобальные сторы, храню в них данные, селекторы, действия, изменяющие данные. Вместо внутреннего стейта типа tooltipIsShown тоже по большей части использую глобальный. Но вот всяческие onClickOutside, onKeyDown, handleFormSubmit все равно оставляю внутри компонентов, так как они относятся ко внутренней схеме их работы. Если все вынести в глобал, он станет прегромаднейшим и работать с таким будет сложно