Well, in prototyped version (\%) i will get a reference. However nothing would stop me from doing same sub with ($) and using that to pass a reference (in this case hash_ref). Now that would not be nice to the interface of that sub (eq. is actually a hash_ref instead of scalar), but would it then be faster?
What i'm hoping here is that by using prototypes (and \%) perl is not transfering a hash as whole but a reference to hash, which it seems from my limited understanding.