For someone coming from NeXTStep (BSD based), having worked with SCO, various BSD and mostly Linux for the last 20 years, the worst thing about systemd is documentation that’s easily accessible/readable for people used to a traditional init system.
“How do I get it to do special use case X” was a basically unanswerable question when it got dragged into the mainstream (for reasons I can very well understand - the reasons for the dragging, that is, the bad docs, not so much).
Maybe that’s improved in the mean time - I wouldn’t know, I had to figure it out back then and now I know its lingo when searching and such.
It allows me to run any weird combination of applications I feel I need on a given day, (fairly) easily integrating basically all open source packages with a custom/local overlay and have those managed as part of the system just like everything else.