Unfortunately, starting with Windows Vista, Microsoft trying hard to lie to programs about the Windows version they run in.
Registry read is not fool-proof, the key can be edited by anyone with enough access permissions.
Yeah, because most programs don't handle it properly. Some programs incorrectly change their functionality or assume they won't work on newer versions of Windows. That's why MS had to basically start lying to software. Heck even back in DOS days this was the case...remember SETVER?