Its the users fault: this is what is wrong with systemd
github.com
github.com
Found via The Register: https://www.theregister.com/2024/06/20/systemd_2561_data_wip...
Reading the comments by systemd developers on that bug, I am now confused about what the --purge option is actually for.
Its intended for package management (basically the entire sd-tmpfiles is intended primarily for package management), specifically when uninstalling a package it is used to clean up the dirs/files created by that package (while on the other end it is used to create dirs/files when installing).
IIRC idealy services wouldn't even need any tmpfiles.d entries at all and would rely on the service StateDirectory= and RuntimeDirectory= but there are also a decent amount of other cases (mostly programs that require config files in /etc/ which idealy shouldn't be required) where there need to be some other dirs/files present.
And I too find it generally works well. I still would prefer it went away though.
Looking at systemd just as an init system is shortsighted. Consider it service manager, that manages lifecycle of services, and starting them at init time is just one of many other mechanisms (other being at specified time, dbus activated, socket activated, as-a-dependency activated, etc).
Most of the alternatives do provide dependency activation and other features you mention: https://wiki.gentoo.org/wiki/Comparison_of_init_systems
I prefer cron for running things at a specified time.
Is systemd a service manager? It seems to be a lot more than that. It aims to make Linux less unix like: https://www.theregister.com/2024/06/13/version_256_systemd/ . It seems more of an OS built on the Linux kernel - a bit like Android.