Users shouldn't need to understand the deeply technical aspects of a protocol to have it work well. The whole point of a client is to abstract those things out to some degree so people can easily interface with the protocol. I'm not saying there can't be clients aimed at technical users. But I haven't used one yet that just works well without me having to fuck around. They irritate the shit out of me and I used to be a developer and have a CS degree. I'm not buying that as a feature.