As Dave mentioned, "include" use a proxy for the included module.
it seems to me that the subclassing uses the similar implementation

class A
	AA = 1
end

class B < A
	BB = 1
	class C
		puts BB  => 1
		puts AA  => NameError
	end

end

B.constants  => AA ..

As I mentioned for the module issue, my point is that apparently,
when B looks up for constants, it searches the proxy since it is 
regarded as part of B. When C asks B for its constants, B does not search
its proxy. No matter how they are implemented in Ruby C interpreter,
at runtime, both BB and AA should have the same accessibility, which
is what an inheritance is supposed to do, isn't it?

Thanks

-Ted