Я несколько упростил задачу. На самом деле вью-моделей может быть 3 штуки. Ещё сложнее ситуация из-за того, что в моем приложении есть opengles и присущий этому фреймворку GLTextureView+Renderer, который вообще не очень понятно куда воткнуть с т.з. архитектуры MVVM.
Это приложение для обработки фоток, активити делится на 3 части:
1. Сверху есть строка со слоями (как в фотошопе слои)
2. Вьюха с обрабатываемой фоткой юзера
3. Выбор инструментов для работы с фоткой
Если тебе надо так сильно разделить логику, потому что, например, пока сохраняется фотка, юзер может ткнуть что то ещё и поломать, я бы тогда лучше завёл какие нибудь стейты (как в MVI) и в зависимости от того, что он нажал, выполнял бы какое то действие