Главным преимуществом MVVM является отделение View от ViewModel (так что VM не знает о View) с помощью мощной функции связывания WPF.
Шаблоны данных - это просто еще одна функция, которая позволяет представлять данные по-разному.Как вы уже сказали, если у вас нет многократно используемого DataTemplate, не создавайте его, даже если вы действительно убедитесь, что он находится в ресурсах View, вы можете разделить его с более широкой группой, если хотите.
использование UserControl может быть полезно, когда вам нужно сделать что-то дополнительное (помимо простого представления данных), например, некоторую сложную проверку или дополнительные команды / кнопки
Я не думаю, что MVVM и DataTemplatesсвязаны в том же контексте.