В моих проектах MVVM я обычно делал то, что вы предлагаете: одну ViewModel на UserControl с другой ViewModel, которая объединяет все это вместе.
Эта агрегирующая ViewModel часто будет ViewModel для окна, а не другого UserControl- хотя это не является необходимым и может быть скорее результатом моих предпочтений и истории, а также того факта, что я в основном работаю в WPF.
Единственное место, где у меня нет отдельной ViewModel для UserControl, этогде я создаю очень специфические многократно используемые пользовательские элементы управления - такие как кнопки с определенными визуальными эффектами или пользовательские ползунки.
Это отражено в структуре моего проекта - у меня есть две стандартные папки для пользовательских элементов управления (которые не имеют ViewModels) и представленийкоторые являются либо Windows, либо UserControls, и которые всегда имеют ViewModels.