Я думаю, что вина заключается в требовании чистоты. Шаблоны проектирования, включая MVVM, являются инструментом в наборе инструментов, а не самоцелью. Если имеет смысл порвать с чистотой модели для хорошо продуманного случая (и, похоже, вы рассматривали этот случай), тогда порвите с моделью.
Если это работает для вас, и вы не считаете, что это чрезмерное бремя обслуживания, тогда я бы сказал, что с тем, что вы сделали, все в порядке. Я думаю, что вы четко взяли на себя бремя доказательств, демонстрирующих, что это разумное решение вашей проблемы, несмотря на то, какой может быть чистая реализация MVVM.
(Я считаю, что этот аргумент аналогичен аргументам для многопарадигмальных языков. Хотя может применяться подход Pure OO, иногда более подходящим является выполнение некоторых действий более функциональным способом. Хотя может применяться подход Pure Functional, иногда компромисс показать, что методы ОО более чем стоят того.)