I'm developing a bitcoin client. Clearly there are bugs in my code :-)
I think it would be useful to define a new message (let's call it "mm", as "Misbehaving Message") used to alert the Misbehaving node that it's Misbehaving (and in which way). In this way if there is a bug it's easier to trace it. The node that receives this message could log it and so it would be clear why sometimes the connection is dropped. As it is, if a node bans you you only see a dropped connection, but you don't know why.
Considering the unrecognized commands are simply discarded in ProcessMessage, I don't think it would break anything.