Sure, debug that shell script, but then don't forget to propagate the fix to all the shell scripts.
The shell script approach violates the DRY principle--it's probably super similar to some 50 other init scripts on the same system. systemd, in principle, removes the boilerplate so that the bug would only have to be fixed once.
So does rc.subr under freebsd.
Or openrc under gentoo.
I would not be surprised if all that boilerplate present in the shell script was now in /etc/mail/make now. No Fedora system around to check this right now, though.
The shell script approach violates the DRY principle--it's probably super similar to some 50 other init scripts on the same system. systemd, in principle, removes the boilerplate so that the bug would only have to be fixed once.