The effect on the hash is indistinguishable, as far as I can say. But the two expressions have different values:
%hash = () returns an empty hash, whereas undef %hash returns undef.
This isn't a big deal, but in my opinion big enough to keep the two distinct.