class C; end
C.instance_eval { def a() end }
C.instance_eval { define_method(:b) {} }
C.class_eval { def c() end }
C.class_eval { define_method(:d) {} }

p C.singleton_methods
# ["a"]
p C.public_instance_methods false
# ["b", "c", "d"]

メソッドbがクラスCの特異メソッドにならないのは何故ですか?