There is a major Catch 22 for Windows packages. Many msi's do not support upgrades. Thus, you have to uninstall the old package and reinstall the new package. However, package resource requires its name to match the Name of the program you are installing. This means that anytime you want to use package resource with windows, you can never use it to uninstall one program and reinstall another of the same name. Yes, you can usually use registry keys, but it makes it much easier to just call out the uninstall of the package name, and let puppet find the registry key and subsequent uninstall command.
This means that anyone who wants to uninstall some program and reinstall a newer version must use strange methods like package followed by an exec install of the msi.
It would be very beneficial if there was some other way to allow uninstall and installing of the same package names in windows, as this will occur nearly 100% of the time.