Dbus can work peer to peer and the protocol is lightweight, so using the protocol and giving the option of either binding to a socket or connecting to the message bus isn't that much effort, and then you cater for both people who want to run the message bus and those who don't.
Not really. It's just a bit cumbersome to use and assumes a lot about the system's setup. The protocol itself is actually pretty lightweight and simple. The library is a pain to deal with at times, at least it was several years ago.