I’d like systemd a lot more if its documentation actually existed in a meaningful form... or if it was debuggable, if help were available, or if its scope were managed. Unfortunately a recurring complaint whenever Poettering is involved in a project.
As much as I might dislike systemd’s scope creep, it’s the only way to provide init with sane service dependencies. You’re pulling on a very long thread when you do that, and it’s not really systemd’s fault that legacy Unix hacked so much together in userland. The real problem is that it wasn’t designed to be fixable. It’s like the software equivalent of an iPhone, glued together, no user serviceable parts, you try opening it up and the whole thing breaks. If something ever goes wrong with it, throw your whole system in the garbage and buy a new one. That’s the Poettering philosophy.
The same with PulseAudio. If it were remotely debuggable, documented, or if Poettering et al actually owned their mistakes instead of blaming everybody else for them, it might be halfway tolerable. But it’s not. There is literally no way to find out what is going wrong, ever. And nobody understands it well enough to even answer questions on Internet forums, maybe even Poettering himself.
But when it’s working, well, it’s okay. It’s fine. You’d never notice it.