The main reason is that Dbus is not available during early stages of boot. There are many others.
Varlink seems to be better or the same compared to dbus in all except two things:
- json doesn’t handle 64bit integers, it handles 52bit (or 54bit?) (size of mantissa for floats)
- you cannot (yet) list all things connected to the bus
Details here:
HP: you are not going to get fired. You will quit.