なにもしないクラスメソッドにブロック渡すとProcが返ってくる

なにもしないクラスメソッド

irb(main):104:0> class A
irb(main):105:1>   def self.hoge(*args, &block)
irb(main):106:2>   end
irb(main):107:1> end
=> nil
irb(main):108:0> A.hoge("bar"){puts "bar"}
=> #<Proc:0xb7e739f4@(irb):108>

なんかするクラスメソッド

irb(main):109:0> class A
irb(main):110:1>   def self.hoge(*args, &block)
irb(main):111:2>     puts "hoge"
irb(main):112:2>   end
irb(main):113:1> end
=> nil
irb(main):114:0> A.hoge("bar"){puts "bar"}
hoge
=> nil

なんで?常識?理屈が分からない・・

追記

あぁ、環境を書いてませんでした

# ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-darwin9.2.2]

akimatterさんからフィードバックもらいました。
クラスメソッドっていうより、なにもしない特異メソッドにブロックを渡すとProcが返る、というのが正確ということっすね。
Procオブジェクトが返ってくることに困ってることはないんですが、ほぇーと思って。


1.9だとnilが返るらしいですが手元にない・・入れないとな・・