From the Windows Installer MSDN topic Organizing Applications into Components:
Never create two components that install a resource under the same name and target location. If a resource must be duplicated in multiple components, change its name or target location in each component. This rule should be applied across applications, products, product versions, and companies.
Option (2) would effectively create a new component for the same registry key each time you release a new version, which violates the quoted rule.
Option (3) can be done in wix by setting the component GUID as Guid=""
. It will make windows installer install the component resources and then "forget" the component. This may do what you want in the sense that the installed resources will not be removed. However, it also means that a "repair" will not be able to restore the registry entries if they go missing.
Therefore you should go for option (1) where you have a fixed GUID, and set the Permanent attribute to keep the reference count for the component non-zero. How windows installer does this internally is an implementation detail that you shouldn't care about, so I don't see the point of looking for those windows installer registry settings.