Существует несколько способов, с помощью которых пробное приложение может сделать это, реестр только один. Давайте предположим, что он использует реестр. Восстановление системы восстанавливает не весь реестр, а только его части. Все, что нужно приложению, - это хранить неясное значение в каком-то непредвиденном месте. Кто-то может смотреть на это и никогда не узнавать, что это такое. Если установщик приложения найдет это значение, он будет знать, что приложение было установлено ранее.
Одним из таких мест будет профиль одной из встроенных учетных записей. Это не будет затронуто восстановлением системы и легко доступно. Разработчики знают, как работает восстановление системы, и будут использовать расположение, которое не будет изменено. И разработчики, как правило, очень изобретательны. Любой компетентный разработчик может придумать несколько других методов за короткое время. Очевидно, что ничего из этого не будет задокументировано.