That isn't to say it's been all rosy in Gentoo-land. It was an effort to keep Gnome3 off my system, to keep the existing Gnome2 versions of everything until MATE (and the Gentoo community packaging) was ready enough to replace Gnome2. But my system is happily free of Gnome3, systemd, and pulseaudio. And because Gentoo doesn't really have release versions, I can keep my other packages up to date indefinitely.
One can already see how you at least have to keep the libsystemd package installed on Debian's latest, even if you use something other than systemd as the init etc, or else apt throws a tantrum.
http://ewontfix.com/15/ may be the most interesting read in all this. Notice how everything but dbus and the systemd lib have various issues. And if kdbus hits the kernel, systemd is poised to position itself as the mediator between (legacy) dbus and kdbus.
All in all there is some serious "one true way"-ism coming out of the systemd camp.
The root cause of all the complexity is (was?) the lack of standardization for hardware interfaces. The lack of some globally usable way of dealing with latency at the OS level is another issue. A thing like Pulseaudio is a natural reaction to the current situation in that it tries to both hide the complexity of the hardware interfaces and deals with the latency issue entirely in one program.
So the problem isn't Pulseaudio. The problem is the environment that media is forced to exist in.
Both PulseAudio and systemd seem to have the "throw everything out, start from a beautiful abstract interface and work down" mentality, which is a recipe for the mess that they've ended up as. Sometimes the best thing to do is pass the ugly complexity one layer up - which is, I think, one of the things that Unix does mostly right.
* Mixing several streams in software, if there's no hardware support (th e FreeBSD sound driver does that as well)
* Dynamic switching between several audio interfaces without stopping the stream, e.g. switching to a Bluetooth headset during a phone call
* Reducing power usage by supporting different latencies for each client application, and then running the hardware with the lowest currently requested latency
Best i could find, Poettering started work on Pulseaudio because he picked up a usb headset (basically a usb soundcard with tethered headset) and ran into issues with switching the IO streams around mid-use (say plugging it in while in the middle of a Skype call).
Not sure why he passed on using JACK though, or if it was not mature enough for him at that stage.
Also, i don't think Alsa had dmix (user-space software mixing) at that point in time.
As best i can find the one thing Alsa is missing is a interface other than .alsarc for configuring pr user virtual devices.
That's more than "your implementation" considering that it spans at least ten machines across about the same number of distros including Fedora (and one FreeBSD). But it's cute that you're so quick to say it's "implementation" when it's clearly broken across so many different environments.
Pulseaudio is a stinking pile of shit.
Most people are cool with that kind of OS, so I don't think there will be much more than occasional grumbling. People like me who can't stand it will all have left.