I understand what you are saying and agree with you in probably every other scenario (I would choose the first method in your example), but when it comes to rendering I found that the easiest and most efficient way to handle it is to have a centralized renderer that knows how to do the actual drawing and each actual object such as a knight just adds itself to the renderer in its own draw() function. Not to be confusing, but the renderer doesn't know how to draw a 'knight', but it does know how to draw a 3D model with the appropriate texture and perhaps lighting information, and the knight just says 'Renderer, add a 3D model with this lighting information to the rendering list for this frame'.
Thats a matter of personal taste I guess. I prefer to think of my objects as independant. If I have a Knight object, I would have all the Move() actions on the Knight, and I would also put the Draw() method on the Knight.