I don’t know what your definition of a kernel is, but systemd is entirely running in userspace. It contains an init system (by the UNIX definition, that is just “the first userspace process that is run when the machine starts”) as well as, indeed, many other useful and some possibly less useful tools.
It thus provides an unified system, with all the tools developped by the same team and using the same conventions. This means the team can make transverse changes as needed, instead of having to do years of negociation and coordination between different projects.
They also settled down on a single kernel (Linux) instead of trying to support every operating system out there.
I know another project with a very similar philosophy, and that is Haiku.
So, systemd is the thing that makes Linux distributions a whole operating system, rather than just a kernel and a disparate set of userspace tools stacked on top.
Then, it has the usual Linux limitations: these days the focus for Linux is mainly on big servers, and on embedded systems. Which means systemd is certainly not designed for end-user machines. I guess that explains why I don’t understand the problems with it: my experience with Linux is indeed geared towards non-user-facing machines. And there, systemd does what it is meant to do, and does it very well.