The virtualization of the registry works just the same in Windows 8.1 as it has done in Vista, Win7 and Win8. There are no changes that can explain what you report.
Are you aware that virtualization was introduced 7 years ago in Vista to help applications that could not be modified work in the face on UAC. The idea is that you fix your application to be aware of UAC, and stop running virtualized.
The thing about virtualization is that your application will write to the virtual store if running as standard user. But if you execute the application elevated then the application writes to the shared part of the registry, HKLM
. From your description above it would seem that you have run the application elevated and this has written values to HKLM
rather than the virtual store.
I suggest that you clean out all the registry settings on this machine. Both in the virtual store under HKCU
, and in the shared area under HKLM
. Then start again with your application, not running elevated. I'm confident that it will work the same way as under previous versions.
However, I am astounded that you are still trying to use virtualization as a feature. It is a crutch to aid the helpless. Don't be helpless. Stop running virtualized. Run away from virtualization.
Update
Your question edit changes this entirely. In fact you are not asking about differences between Windows 8.1 and earlier versions. You are running a different program on your Windows 8.1 machine, one that is 64 bit. And 64 bit process are never virtualized.
Again I repeat my advice that virtualization is not to be used the way you do. It is folly to rely on it this way.