Wenn ich das richtig verstanden habe bisher, dann wird über die MSI immer eine uninstall routine erstellt, während das bei der exe eben nicht passieren muss.
.msi ist, wie beschrieben, ein Script für ein ohnehin bestehendes Tool. Das kann besagtes Tool auch rückwärts ablaufen lassen und so installieren, aber es gibt keine eigenständige Deinstallationsroutine oder überhaupt irgendwas eigenständiges. Was man spätestens dann merkt, wenn mal wieder was auf anderem Wege gelöscht wurde und der Verweis auf das Script aus der Windows-Anwendungen-Liste ins Leere führt oder wenn diverse nicht direkt installierte, sondern erst später während der Laufzeit generierte Inhalte zurückbleiben.
Ich persönlich bin weiterhin für "gar nicht installieren". Einfach hinkopieren und komplett innerhalb des eigenen Ordner ausführen, fertig. Speicherplatz ist längst so billig, dass man sich die paar durch gemeinsam genutzte, zentrale Ressourcen vermiedenen Megabyte einfach schenken kann, zumal Änderungen daran für viele Probleme verantwortlich sind. Und die Abtrennung zwischen Benutzerkonten ist 90 Prozent der Anwender und Anwendungen auch egal respektive für weitere 5 Prozent zu löchrig.