I too don't expect to be reading the source code to systemd when troubleshooting problems, it's the unit files where the logic is, and they should be much easier to debug than shell scripts. systemd has such a limited scope, it just needs to start processes in a configured environment, and has a well defined interface to the kernel I expect the core of it to be pretty stable. There may be more churn in the ancillary tools but they should be fairly easy to debug by logging or watching their inputs/outputs as they are separate processes.