ワナベと申します。
以下の挙動は意図された仕様でしょうか。(なお1.8.7でも同様でした)
また仕様であるならなぜでしょうか。
個人的には、代入前は B 側の表記、代入後は C 側の表記に
なっているとわかりやすいように感じるのですがどうでしょう。
$ ruby -ve '
$a=Class.new
class $a::B ; end
$a::C = Class.new
p $a::B, $a::C
A = $a
p A::B, A::C
'
ruby 1.9.2dev (2009-07-19 trunk 24206) [i386-mingw32]
#<Class:0xb85690>::B
#<Class:0xb85600> # => #<Class:0xb85690>::C であってほしい
#<Class:0xb85690>::B # => A::B であってほしい
A::C
--
ワナベ