ちょっとドキッとした

% irb
irb(main):001:0> def func
irb(main):002:1>   return "oi"
irb(main):003:1> end
=> nil
irb(main):004:0> a=func
=> "oi"
irb(main):005:0> p a
"oi"
=> nil
irb(main):006:0> *a=func
=> "oi"    <----ここ
irb(main):007:0> p a
["oi"]
=> nil

書いてることが真っ赤な嘘かと。pするとちゃんと期待どおりなので、こういうものだと思うことにしました。