You could read the (currently) 20-part sysadmin guide.
http://0pointer.de/blog/projects/socket-activated-containers...
/sbin/init and its simple shell scripts never required this much explanation.
I have had my fair share of daemons not starting due to various problems. E.g. openldap (terribly confusing debug messages). Give me systemd any day over the complexity of a lot of those scripts.
But I think it's comparable to systemd in that if you manage an LDAP directory day to day, the new system probably makes more sens once you're used to it.
We have to relearn the config and, man, sometimes we can be a lazy whiny bunch when we should try to evaluate systemd more objectively ;-)
As an aside, the survey pleased me as I expected more conservatism from Debian
Openldap gives difficult to debug starting problems in loads of cases. E.g. problem in a certificate, config problem, etc. Then you might want to increase the debugging level. Really not fun to look into some script and figure out what actually eventually is passed to the openldap daemon as arguments.
That said, putting my devil's advocate hat on, if you and I were to start afresh not knowing shell, we'd struggle too. And truth be told, I'm not objective enough to tell if it's easier to learn shell programming or systemd config for a neophyte.
They're quite different. Upstart is event-based while systemd is based on automatic dependency resolution and socket activation: http://www.youtube.com/watch?v=TyMLi8QF6sw&t=11m18s
Yes, underneath they have completely different implementation, but it shouldn't really matter apart from OS-level edge cases. If it does matter, it's a sign they failed to provide a simple and usable tool in my opinion.
EDIT: It is the reversed dependency logic in upstart which makes it so different from anything else.
But to be honest, I prefer upstart much more. It's simple, it does one thing, it's clear about what happens (most of the time). With systemd I find myself quite often with no idea where to even look for information about something not starting. I still have a service in the system that I don't know how to remove (it's failing to start apparently, not even sure where does it get created). I spent hours debugging issues and trying to get it all-green on my system... and failed. In my opinion it's just too big and complex for it's own good. For my deployments upstart provides the equivalent behaviour in the part that matters (actually running the software) in a simpler way and does not try anything else.