"var %a" does not unset a local variable, it just creates the local variable containing $null.
"unset %a" unsets either a local if it exists even as $null, or unsets global variable in the absence of a local variable.
There's currently no way to unset a global without first unsetting any potential local variable.
//set %a Global | var %a Local | unset %a | echo -a %a
//set %a Global | var %a Local | unset %a %a | echo -a %a
To maintain backwards compatibility, unset could be given -l or -g switches to indicate whether you want to clear one or both variables. -lg would ensure clearing both, and would be equivalent to "unset %a %a"