The complexity is there, you just don't see it. Systemd handles all types of services. Sysvinit does not. Systemd abstracts a lot, making it easier per service (by putting more in systemd). In sysvinit a lot is copy/pasted across services. IMO making everything more error prone.