in reply to vivification of package variables

Just mentioning its name is enough to vivify it. (You're going far beyond that and assigning a value to it!) Using a symbolic reference doesn't vivify it until the reference evaluated.
>perl -le"$pkg::var1; $pkg::{'var2'}; print for keys %pkg::;" var1

I'm not sure I understand your disconnect. Do you think

$pkg::var = "foo"; package pkg; print $var;

is different than

package pkg; $var = "foo"; print $var;

They're not.