> Now suddenly every program needs to be able to...
If by "every program" you mean "your init system", then sure. For example, OpenRC predates systemd by several years, can manage both forking and non-forking services, [0] and supervise non-forking programs with no PID files required.
[0] It even handles both s6 and systemd-style socket-based readiness notification.