systemd guys rewrote libdbus to simplify it. Independent benchmarkers found
systemd's implementation to be 3.6 times faster (slide 21 in
https://github.com/gregkh/presentation-kdbus/blob/master/stuff/EG-SI-IPC%20CommonAPI%20CPP.pptx?raw=true
[PPTX]). Many programmers decided to depend on to systemd's implementation,
sd-bus, because they like their programs to be simpler and faster.
Call that a "bad excuse" if you want. I call that a "valid reason". And
sd-bus is contained in libsystemd. It does not impose a specific init
system. It imposes the Linux kernel though, whereas libdbus, GDBus or QtDBus
are portable (one of them can be used in another version of the program).
As for GNOME, you certainly refer to the dependence on logind. logind
replaced ConsoleKit, which is no longer maintained because its developers
have found logind better. With the second sentence on
https://www.freedesktop.org/wiki/Software/ConsoleKit/ they warn, in bold
letters, against the use of ConsoleKit:
ConsoleKit is currently not actively maintained. The focus has shifted to the
built-in seat/user/session management of Software/systemd called
systemd-logind!
Depending on logind rather than ConsoleKit is not a "bad excuse".
ConsoleKits's development stopped more than four years ago:
https://cgit.freedesktop.org/ConsoleKit/log/
Well, unless the programmer prefers to drop basic functionalities (see
https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html
for a list) of her program rather than depending on a systemd module.
Nowadays, elogind is an option too:
Elogind is the systemd project's "logind", extracted out to be a standalone
daemon. (...) All of the credit for elogind should go to the systemd
developers.
Elogind has been developed for use in GuixSD, the OS distribution of
GNU Guix. See http://gnu.org/s/guix for more on Guix. GuixSD uses a
specific init manager (DMD), for reasons that are not relevant here,
but still aims to eventually be a full-featured distribution that can
run GNOME and other desktop environments. However, to run GNOME these
days means that you need to have support for the login1 D-Bus
interface, which is currently only provided by systemd. That is the
origin of this project: to take the excellent logind functionality
from systemd and provide it as a standalone package.
We like systemd. We realize that there are people out there that hate
it. You're welcome to use elogind for whatever purpose you like --
as-is, or as a jumping-off point for other things -- but please don't
use it as part of some anti-systemd vendetta. Systemd hackers are
smart folks that are trying to solve interesting problems on the free
desktop, and their large adoption is largely because they solve
problems that users and developers of user-focused applications care
about. We are appreciative of their logind effort and think that
everyone deserves to run it if they like, even if they use a different
PID 1.
https://raw.githubusercontent.com/elogind/elogind/master/README
As for PulseAudio (I imagine that is what you mean by "audio-mixers"), it is
the same: it used to depend on ConsoleKit. According to
https://wiki.gentoo.org/wiki/PulseAudio#Without_udev.2Fsystemd it is possible
to run PulseAudio without logind but "this breaks both auto-detection and
hot-plugging -- needlessly making your life harder".