Выглядит как DI-костыль для бедных. Типа "мы не верим, что вы сможете настроить общение экранов через модель поэтому вот вам возможность подоткнуть что-то из активити". Область применения очень ограниченная.
А если я хочу из VM второго экрана слушать первый, а не из фрагмента, чтобы какую-то дополнительную логику навернуть? observeForever страшный использовать?
А если я хочу чтобы вьюмодель была пошарена на уровне родительского фрагмента?
"Fragments don't need to know about each other besides the SharedViewModel" - окей, то есть мне нужно делать модуль с пошаренной вьюмоделью и от него зависеть модулями моих фрагментов? Тут даже зависимость эту не развернешь, потому что ViewModel по интерфейсу не запровайдишь.
В общем, узконаправленное и весьма странное решение. Если оно действительно хорошо подходит под задачу - отлично, вопросов нет, но ощущение, что реально таких задач немного.