Тут тебе кажется все окей и ничего никгде не нарушает?)
Включая тот же клин?)
Чтобы не нарушать клинкод, придется для иерархии блоков изобретать собственный DI. Что примерно и делают всякие Get...
Об этом разработчики флаттера и писали - что мол блок не говорит как организовывать сами блоки, в отличие от провайдера.