module内に、同名のクラスメソッドと、メソッドが定義されたとき、最終的には、最後に評価された式が優先されます。例えば
irb(main):108:0> module Mod irb(main):109:1> def hello irb(main):110:2> puts "hello" irb(main):111:2> end irb(main):112:1> irb(main):113:1> def self.hello irb(main):114:2> puts "world" irb(main):115:2> end irb(main):116:1> irb(main):117:1> module_function :hello irb(main):118:1> irb(main):119:1> end => Mod irb(main):120:0> irb(main):121:0> irb(main):122:0> irb(main):123:0> irb(main):124:0> Mod::hello hello => nil
だったら、 ` module_function :hello` が最後に評価された式ですね。だからhelloと出力されてるのですね。