but sometimes it is necessary to do unusual things in init scripts to
properly intregrate a service into the system. How to deal with that?
Write shell wrappers that are executed from systemd?
If absolutely neccessary, that is an option. So is fixing the service to
play nice and be easy to start from systemd, which would be much more
preferable. Off the top of my head, I can't think of a case where this
latter wouldn't be the better option.
For unusual, but not-horribly-complicated things, you might be able to
get away with ExecStartPre & ExecStartPost and similar. (I abuse these
to open a new VT, and attach gdb to the just started daemon - makes for
very easy debuggability, and would be a pain in the backside to do in
most sysvinit initscripts.)