My biggest issue with the protocol is that if I want to develop for an advanced data interchange protocol there shouldn't be any optional extras. Everything should be in the spec and required of real clients. (I can, however, envision a protocol in which 'relay servers' exist that don't need to fully understand a message to pass it's content.)