While Microsoft provides the variables, discreet programs are the users. It's like asking for an authoritative source on the laws of the US. While Congress writes the laws, the Executive branch enforces them, and the Judicial branch interprets them, and it is up to the lawyers to find the tactics that best fits. One source for a model that involves numerous parties is by definition incomplete.
You will have to be more specific unless you want to dig through two decades worth of documentation.
Currently, you can download a code sample that lists all the variables if the technet article isn't clear enough.
As far as what you've posted, that seems pretty clear to me. Are you looking from a programming side or from a troubleshooting side?
Actually, you aren't asking for an authoritative source. You are asking for a historical source. Since Windows 95 isn't officially supported, you are no longer going to find a official Microsoft source.
%Windir% was a variable used by Windows 95, because it was DOS based. Back then, the Windows directory wasn't necessarily located on the C drive. Heck, it was possible it wasn't even a local drive!
%Systemroot% was used by NT. Keep in mind they were two separate product lines.
When the two product lines merged with Windows 2K, they kept both of them since numerous programs used either one. It has been in Windows ever since.
But for all practical purposes, you should use Systemroot, since that is what Microsoft recommends.
I'm sure there is a Old New Thing post that talks more about this. . .
This script will list all the scripting variables and their values on their machine.
Here is an Technet list.