The principle has never really been "do one thing, and do it well"; it's about having a collection of tools, where each tool does one thing well, but doesn't exist in isolation. Each command line tool should do one thing, but coreutils provides a bunch of tools, and busybox is a single executable which does many things, but any time you call it, it does one thing well. Furthermore, it's clear that "ln", "cp", and "mv" share conventions which make less sense for some than others, but all benefit from the consistency across tools (in particular, making symlinks has the arguments in an order which would not be the obvious choice if there were no other similar operations).
As such, systemd is reasonable as a set of functions which are designed together, implemented together, and shipped together, but can be called individually. (Which is not to say that systemd is necessarily designed or implemented well, but that there's not anything inherently wrong with a lot of functionality coming from systemd.)