Установщики - это результат многолетней эволюции, и немного (упрощенная) история помогает понять, почему они делают то, что делают.
Модель Windows 3.1 предлагала файлы конфигурации в стиле config.ini для каждого приложения с поддержкой общих библиотек, идущих в системные папки, чтобы избежать дублирования и неиспользованного дискового пространства.
Windows 95 представила реестр, позволяющий центральное хранилище для конфигурации приложения, заменяя многие файлы конфигурации. Что еще более важно, конфигурация Windows была сохранена в том же месте.
Реестр стал раздутым из-за того, что приложения не убирали за собой. DLL-ад произошел в результате того, что несколько версий одних и тех же общих библиотек перезаписали друг друга.
.NET представила концепцию app.config (почти ini-файлы отметки 2, на этот раз с немного большей экономией структуры разработчики тратят время на написание парсеров вручную). GAC был представлен версиям совместно используемых сборок в попытке предотвратить DLL Hell.
В Windows XP и, более того, в Vista, Microsoft попыталась определить пространство пользователей как место для хранения пользовательских данных и файлов конфигурации в одном стандартном месте, чтобы обеспечить перемещение профилей и простую миграцию (просто скопировать свой профиль) с приложениями, установленными в Program Files. ,
Так что, я думаю, причина в том, что «приложения в окнах предназначены для жизни в одном месте, их общих зависимостей в другом и пользовательских данных в другом», что в значительной степени противоречит концепции копирования одного места.
... и это прежде, чем вам придется настраивать учетные записи пользователей, а также настраивать и обеспечивать разрешения безопасности, загружать обновления и устанавливать службы Windows ...
xcopy - это «простой случай» и, безусловно, не подходит для всего.