Many people don't like launchd on OS X either. It uses XML configuration files and you get a hurd of apps spinning and waiting for resources. It's very easy to botch writing a good startup script.
The real issue is that systemd is a non compatible, poorly licensed solution and it intentionally is incompatible with every other unix system. If we're going to replace init with something else, it should be possible to actually run on more than one unix like operating system. There have been poor attempts to port launchd to FreeBSD for example. Nice in theory, but even that license isn't "good" with some folks. It also has a lot of depends on core foundation.
I actually think it makes sense to combine the jobs of init and cron because they have obvious overlap. However, making a kitchen sink kind of daemon that runs as root has obvious security implications.
The best possible solution is to come up with a daemon that can be used by several unix like operating systems so that scripts are compatible and things just work. The linux community will replace systemd and dbus in a few years because that's what they do. The rest of us have to live with these decisions for some time.