It's not comprehensive - in Guix there are services that exist above and below Shepherd and you can't define ordering dependencies between these (ex: a shepherd service can't depend on a mount (above shepherd), or an inetd service (below shepherd) on a database). I'm not sure that's a huge problem in practice.
Shepherd process stdout/stderr are sent to syslog. Shepherd automatically restarts services if they fail but not forever, and the retry behavior isn't configurable ATM.
Guix is for you if you want to run old software on a discontinued software stack simultaneously with a modern system.
The big wins for me though are: having all my system configuration in a small set of versionable text files (rather than gigabytes of mutable state), and being able to attach dependencies to the scripts that require them rather than to the system they're expected to be run on.
(I use NixOS, but it's the same concept)
https://www.gnu.org/software/shepherd/
That said, to me systemd has been a large improvement. Maybe it has its problems, but at least there is consistency in handling services and logs between Linux distributions, which is a big improvement over a bunch of homegrown sysvinit derivatives, Upstart, and homegrown non-sysvinit scripts.