короче, там столько всякого говна, и ни в вакууме не одно решение не лучше другого, ориентироваться надо исключительно на свои предпочтения и ограничения проекта.
потому что если бы у меня на проекте было 40 джунов и один лид, я бы не стал юзать setState, я бы взял кубит. И строил на нем MVVM.