Pra mim setState e streamBuilder+RxDart resolvem quase todos os problemas. Em raras ocasiões uso get_it+event_bus para alguma informação global. Acho que usar ferramentas mais simples é melhor do que usar pacotes como o getx que possuem milhares de funções e possibilidades. Lembro de passar mais de uma semana estudando e querendo aprender tudo sobre o getx, vi que dava pra fazer muita coisa com ele, só que a maioria das coisas nunca precisei usar e o que precisei deu pra fazer com o básico do dart. Desisti do getx depois de aparecer alguns erros e não encontrar resposta de como arrumar. Pelo que vejo, quanto mais básico o código, mais fácil de conseguir resolver os problemas. No final tudo se resume a rebuilda algum widget após alguma mudança, pra mim esses megas pacote de gerenciamento de estado podem complica mais do que ajudar, alguns parecem um framework dentro de outro framework.

Então, umas das coisas que não concordo do GetX também é que tudo está em um lugar só, ai realmente confude.

Porém como a pprópria documentação diz:

GetX não está inchado. Ele possui uma infinidade de recursos que permitem começar a programar sem se preocupar com nada, mas cada um desses recursos fica em containers separados e só são iniciados após o uso. Se você usar apenas o gerenciamento de estado, apenas o gerenciamento de estado será compilado. Se você usar apenas rotas, nada do gerenciamento de estado será compilado.

O ponto é que você tem que observar as importações, no caso se você for só utilizar o gerenciador de estados, precisa importar os arquivos apenas para isso para que na hora da compilação não venha todo o restante...

Nós sempre falamos isso na nossa empresa, o GetX não é tão 'acoplado' como muitos dizem, porém realmente é necessário estudar ele com mais cuidado, para não aprender de forma errada.