However, do these programs follow the do-one-thing-and-do-it-well principle: web servers like Apache, database servers like PostgreSQL, the X Window system, the GIMP, OpenOffice? Is an init system more like one of these or more like sed and awk? That's not a rhetorical question. I'm a web programmer who loves Linux, but the kernal and start-up are still black magic to me.
Apache is monolithic in the same way that systemd is. It does not do "one thing". Nginx exists because Apache does way too much. X.org is also absurdly complicated, but at least they stripped out the print server. Wayland is the attempt to make it more pared-down. An init system is either complicated or bad at what it does, or both. I would perhaps debate about including Postgres as a piece of monolithic software, perhaps in comparison to simple data stores, but it doesn't stray too far outside of the definition of "relational database".
Maybe an init system can be simple. I don't understand why even shell scripts are needed. Seems like they should be the exception, not the rule. Seems like configuration should be a single file that lists the programs to start from top to bottom. If you wanted add some parallel start-ups, it seems like you could just make the config file format a little fancier, maybe with some braces or indentation to express dependency.
Your system is not well thought out and would not handle dependencies / parallel startup very well. However, generally speaking shell scripts should definitely be the exception: executable configuration files are a bad design. If you must use arbitrary scripts, then you should abstract the common elements and reduce the part that must be expressed as executable code to the bare minimum. Have sane defaults, and an easily-reviewed common subset of functionality, make the simple things easy, and stay out of the way of anyone who really really needs a programming language and shell in order to start a program.
Maybe instead of systemd we could come up with a start-up standard, sort of like the POSIX standard.
The important part of systemd is actually managing processes and services, startup is where most of that happens, but it's not the driving force of systemd. The reason why systemd exists, and the reason why it isn't portable, is because of cgroups, which are a feature specific to the Linux kernel allowing for real process management. In non-systemd Linux, daemons must carefully communicate through special files what they are doing, or the OS is not able to determine anything about the service. There is a complicated process which every process that wants to daemonize must follow, and the only thing that makes this remotely sane is longevity. Solaris and OSX have both separately replaced SysV init.
I have read that FreeBSD has taken the strategy of using essentially a library of common things that init scripts might want to do, but for the general case having this library be written in an interpreted language gains little.