In Scala 2.9.1 I get the following behavior:
class Foo { case class X() object X // this compiles def bar() { object Y // this
This is a known bug: SI-3772: companions and method-owned case classes. This is partially fixed, but the OP's issue still remains. Vote it up if you want it fixed.