systemd appropriates the cgroup tree and takes control of it and completely messes with any other user of the cgroup tree and really wants them all to go through systemd, systemd was wirtten basically on the assumption that nothing but systemd would be using cgroups and they even tried to lobby to make cgroups a private prioperty of systemd in the kernel but that went no-where.
systemd's usage of cgroups for process tracking is a fundamentally broken concept, cgroups were never meant for this and it's a good way to fuck resource usage up
systemd has a hard dependency on glibc for really no good reason
systemd relies on DBus for IPC, as the name 'Desktop bus' implies DBus was never written with this in mind and it shows. DBus was written to facilitate IPC within a single desktop session, not as a transport during early boot. This is why systemd wanted to push kdbus heavily beause kdbus solved some of the problems inherent to DBus being used as IPC during early boot.
systemd's security and general code quality practices are less than stellar, a lot of security bugs pop up in systemd due to its insistence of putting quite a bit of code in pid1 and quickly adding new features and quickly changing things.
systemd creates dependencies and is a dependency of things for political reasons in order to encourage people to pick these things. This is not conjecture, Lennart has admitted multiple times that he creates dependencies to 'gently push' everyone to the same configuration
systemd is monolithic for its own sake. It's basically product tying to encourage people to pick an all-or-none deal to again gently push towards this consistency
Lennart Poettering, the face of systemd and its lead dev is the biggest primadonna FOSS has ever known who continues to shift blame and demand that entire world adapt to his designs.