やっちまった・・・_| ̄|○||| >>787 再度撤回。
>>787, >>788 の c は、ループ前にリストコンテキストで key %hash をやったケースでした。(いわば d。)
まとめると、結果は次の通りでした。やっぱ c の方法(void コンテキストで keys %hash 後、each(%hash))がおすすめ。
Rubyst にもあげようか。いいノウハウだから。>>789

[N=10, ハッシュ 400000 要素]
a_usr = 14.88±0.05 秒
b_usr = 12.92±0.04 秒
c_usr = 12.97±0.08 秒
d_usr = 17.25±0.35 秒

[N=100000, ハッシュ 40 要素]
a_usr = 11.83±0.05 秒
b_usr = 11.12±0.10 秒
c_usr = 11.56±0.03 秒
d_usr = 13.48±0.10 秒