It's not necessarily bad. It's just a fact of the design. OOP can create a lot of clarity, done right, and this approach is, in itself anything but clear. The question is one of design: what does the designer want?
I'd like to be able to ask the rook who it can attack. That's just the way I work. I don't say it's better, it's just the way I like to do things.