原です。

昔は、例えば Integer に foo を定義するには、

   class Integer < Numeric
     def foo; 1; end
   end

とスーパークラスまで書かないといけなかったと記憶してるんですが、
今(1.6.6)では、

   class Integer < Numeric
     def foo; 1; end
   end
   p 0.respond_to? :foo #=> false

で、warning: already initialized constant Integer も出ますね。
これって仕様変更?