What's right for the kernel programmers isn't necessarily right for the operating system users.
Despite being a programmer, having used Linux since the days of 0-numbered kernels and Slackware, and not being afraid to get my hands dirty in bash or anything else, I have absolutely given up with systemd. It either works or it doesn't, and when it doesn't, I stop caring and use something else. Diagnosing it is ridiculous, it interferes with everything, it has complete apathy to my desires (e.g. if I want to use another DNS resolver), and is just a blackbox that interferes in every possible system.
And along the way, I've lost simple abilities. Like the ability to choose the name of a device in /dev/, for instance. If it's a network card, I can rename it. If it's anything else I can't. And that's been put into the kernel and can't be changed. So when you have a device that appears as /dev/somethingrandom, the best you can do is symlink it from what you want it to be (and god help you if there's already something else in that name, because you can't overrule the kernel).
Hell, it takes me minutes to find relevant logs, find out why a service didn't start, etc. whereas it used to just be starting the service and watching that name in /var/log (even via a recurring cat or other basic tool).
I tried to find out how to make a systemd service the other day, I literally gave up and did it via the old backwards compatibility with runlevels.
Just because it makes your life easier does not mean it makes anyone else's. Just reminds me totally of the whole "cdrecord must have a full scsi path and you can't use, e.g. /dev/sr0 even if that's where the device lives" shite that plagued that bit of software for no sensible reason. I'm sure it make the author's life easier, but everyone else was just screaming "I just want to burn the damn CD!".
Systemd is a damn nightmare of usability, readability, capability and culpability. It's improved absolutely nothing my end, and destroyed all kinds of things that were working perfectly fine. I'm sure if you have a thousand services spread across dozens of machines it makes something simpler, but if you're just a guy with a personal computer it's a fecking nightmare from every angle. And literally *every* advantage it gave could have been done the old way, with the same kernel functionality (e.g. cgroups) exposed to the bash shell to let it happen.
Systemd solves no problem that I ever had, but is such a problem in handling that just the name is enough to make me give up now.
Hell, I tried to make a little gaming box the other day. Guess when I realised that there's literally NO WAY to move another device to become, say, /dev/input/js0 when a program is specifically looking for that path if a kernel driver has already claimed it. Literally, your device naming order depends on device discovery order and is pretty immutable unless you want to go hard-moving dev nodes around after every single boot.
It merges kernel and user-space, it destroys the init process's replayability, it doesn't do anything any faster, or any more securely, and it literally throws a paddy if you want to have anything other system systemd's named in place (plus a million and one other "essential" daemons that just seem to take over existing programs while providing less functionality and flexibility).
Honestly, I was never so disappointed as to hear that the Debian project voted to keep it "but explore alternatives" recently. It's a heap of junk.