Re: Rubyはトップレベルで宣言したメソッドがインスタンスメソッドになる

実際に実行してみるとわかりますが、 "hello".f などは NoMethodError が出るはずです。トップレベルで定義されたメソッドは main というトップレベルの Object のインスタンスに定義されます。が、private として定義されるので、レシーバを伴う形では呼び出せません。 (参考: クラス/メソッドの定義)

もしもこのコードを実行して "hello".f が "hello!!!" という値を返すのなら、それはバグの可能性が高いのでしかるべきところに報告してはいかがでしょうか。

id:Kanasansoft そのものズバリな内容がメーリングリストにありました。