I created dbus and wrote the original spec. There is a nul byte first because some platforms require that to send credentials. Then a plain text protocol modeled on SASL for authentication. After that the binary message protocol begins.
Sorry if others could have done it better, but they didn't, and many tried. My way works and exists.