So, should peer mix requests be in-band, or out-of-band (on a different port)? How realistic is it that the core devs would accept a pull request that extends the protocol for the purposes of mixing?
I'm thinking it would be cleaner with a simple mod to allow an rpc-request of the peer list, and use a separate, simple protocol for mixing.
I think a very basic level of mixing should be supported in the base client and protocol, but possibly only after support for tree pruning / meta tree is finished. Support for reacting to messages relating to mixing should be optional and messages can be ignored if not supported. The main reason I would like to see mixing in the protocol is a social one rather than a technological one - it is a defense against drawing nefarious inferences from the observation that someone is mixing their coins. One can always plausibly claim their coin mixing is unintentional or innocent (they merely checked a privacy checkbox) rather than deliberate, if it is easily-enabled client behavior.
More robust mixing (e.g. mix nets that mix aggressively, or with massively multiple parties, or that use IRC or other methods for peer finding) would all be supported via an RPC call.