The main problem with SysV is that every script needs to do everything: It is, after all, just a hook for the OS to call on startup (as well as a useful, but not necessarily mandatory, way for users to interact with the service).
So every script needs startup config (Debian: /etc/default), PID file management (start-stop-daemon), daemonizing (ditto), startup log management (ie., tracking what happens until the program can start logging on its own), limits (ulimit is per session, so every script has to do this to avoid inheriting root's limits).
Plus, you don't get: Dependency management; automatic respawning on failure; CPU and memory resource alotment; ability to list and inspect declared services vs. everything else that's running; handling of orphaned forked child children; etc.
Systemd has been accused of being monolithic, but it seems highly modular to me, and more so than Upstart.