Ну пока только начинаю есть опыт с mvp и mvvm
Есть приложения, где Presenter/ViewModel должны постоянно тригерить View напрямую. Тогда тебе больше подходит MVP.
Есть приложения, где ViewModel должна держать состояние каждого поля у View, самой View нужны лишь данные, которые она может отобразить пользователю. Эти данные нужно легко тестировать и всегда иметь слепок данных в случае возникновения различных исключений. Тогда тебе больше подходит MVVM.
Если все твое приложение это отображение различных стейтов экранов и подход UDF красиво ложится на твое приложение или фичу, то лучше использовать MVI.
Вполне нормально, если всё приложение придерживается выбранной архитектуры, а некоторые экраны используют подходы из других архитектур, если они больше подходят.
По опыту скажу, что как правило MVVM отлично подходит для большинства приложений и кейсов.