%systemDrive% reflects the current system drive.
%programfiles% is not always on %systemdrive%. if that's the case then any use of %systemdrive% would go to the wrong drive.
And, if the program purposely installs to %systemdrive% and saves it as an absolute path, such as C:\ in the registry during installation, you must consider that your systemdrive can only change when you reinstall windows.
At which point you would need to reinstall the program. At which point the value is written with the new system drive.
I'm not even clear on what the entire aim is here. Changing all the "absolute paths" in the registry that will only change after a system reinstall is a tad silly. Additionally, remember that the programs reading the strings might not even expand environment variables; this is especially true for "REG_SZ" values as opposed to "REG_EXPAND_SZ" values. at which point the program will literally try to view a path called "%SystemDrive%" and fail miserably.