Those "WiX pre-defined properties: USERNAME, COMPANYNAME, and PIDKEY" are actually Windows Installer properties with documentation here in MSDN, such as PIDKEY here:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370826(v=vs.85).aspx
I didn't see a question related to them, but being Windows Installer properties they are intended for use during the install. The fact that username is written to the registry is an implementation detail of the documentation:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa372385(v=vs.85).aspx
stating that if it's not automatically set it will use the previously saved value.
WiX generates MSI files for install, so many of its properties and data items translate directly to something in an MSI file or a Windows Installer property.
Most of the information to do with standards and best practices for Windows Installer is here:
https://msdn.microsoft.com/en-gb/library/bb204770.aspx
as "Windows Installer Best Practices" and it includes a link to the Windows Installer Logo Requirements:
https://msdn.microsoft.com/en-gb/library/aa372825.aspx
all of which talks about installation and application best practices, so this really is a "link only" answer to that part of the question because there is a lot there.
Regarding #3 you probably mean Windows Installer, not WiX. But either way it's irrelevant because it's implementation detail. There are MSI APIs - see comment below. One example: If Windows writes information about all your installer components to the registry it is unimportant because MsiEnumComponents() will enumerate all the components on the system, MsiEnumClients() will enumerate the products that own them, MsiGetComponentPath () where a component was installed, and so on.
It's not clear from your question what "registered user information" is, unless you mean USERNAME. Do you want to find out who installed the product? If so, USERNAME is not the best choice because it doesn't have to be a user account - it's just a name. In general there are APIs for everything like this that do NOT require reading the registry. MsiGetProductInfoEx () will get you product information for a particular user. MsiEnumProductsEx () will enumerate all products and which user installed them.
PIDKEY is the non-validated product id, as the docs say. It becomes the ProductID property that can be retrieved from an app using MsiGetProductInfo (..ProductCode..., "ProductID", ...) and note also you get "RegCompany" and "RegOwner" which are the others you refer to.