I don't like its hard dependencies on glibc (specifically, with no support for other libc's) and dbus (I'd've preferred Poettering going full nih and developing his own RPC protocol).
Other than that, systemd provides a polished experience, so if you want to displace it you'll have to produce something equally polished and compatible with existing unit files, just as systemd was able to consume ye olde sysv startup scripts.
The only other contender that I'm aware of that isn't just one massive design flaw, is openrc, and it's somewhat inferior to systemd.