Most daemons (including OpenSSH) are restarted in their package's maintainer scripts when new versions are installed. This has many benefits: when a new version is installed, you know it is running, so you can more easily track security and other bug problems. However, D-BUS does not allow for this. When the bus is restarted, all the applications using it fall off and do not reconnect gracefully. This is partially because app maintainers refuse to because restarting D-BUS is not The Way And The Light, and partially because the library is fundamentally broken in this regard. Currently the D-BUS library forces an exit() when the bus dies; overriding this does not allow you to gracefully reconnect to the bus, however.