RE: Windows Uninstalling
Unfortunately, it is not a limitation of the Windows Installer Service (msiexec) as much as it is the software companies. I have been repackaging for a very long time, and unfortunately the tendancy toward laziness when building an install package gets worse every year. I don't know how many times I have questioned dev teams from top companies (Adobe, Oracle, even MS) WHY can't you simply package your product in such a way that it removes whatever it lays down on the system?! The answers are usually the same: "the user might be performing an upgrade" "the user might want to reinstall at a later date" - but it all comes down to laziness in my mind.
If packaged properly, msiexec will install and uninstall every file, shortcut, reg entry, system variable, com object, etc. that you put down. The tool can unfortunately only do so much when developers put little to no effort into it.