I think the the controversy is the other way around, systemd does a lot of things the others didn't. People wanted all those responsibilitys modularized.
Because the Linux community is not made up of product managers. It's full of software developers each who thinks their way is the best. Distros, maintainers and users will always be fighting political battles.
systemd is written in a language that is easier than shell to get right, and it's capable of things very few script-based init systems are capable of, so in practice it's very rare that the code of the init system itself needs to be debugged. It's basically rock solid compared to sysv-rc.
> systemd is written in a language that is easier than shell to get right
You might regard C as easier than shell to get right (that's debateable), but systemd has many many more lines of source code than sysvinit. Good luck debugging it at source code level on a remote system if that "very rare" event occurs.
Even more massively to me, this was a very low barrier for entry for beginners who want to learn how everything works. It was a major point in favor of Ubuntu, coming from Windows, when I started experimenting bit over a decade ago.
Going binary is like going back to Windows. If systemd was how Ubuntu worked 15 years ago, it's likely I wouldn't have seen the advantage and wouldn't have bothered switching.
What do other init systems do that systemd doesn’t?
It might have had a controversial history, but it’s here to stay. Just deal with it.