There's an issue on windows that when you need privileged/elevated account to run certain program that needs UAC confirmation for lower level system functions, the application would be using that admin account as user which means the Appdata, Document, etc. would be for the admin account. This is an issue for self-updating software, when updating, the software needs elevated status to modify the system which means after update, the user would need to close the program that had UAC confirmation and reopen it using the guest account.
This is an interesting question where how the software architecture should be designed. How can a software update non-core part without needing elevated account.