I have a software engineering background but now primarily do PLC programming and machine design.
The squabbling over ST vs LD is rather silly. Two different tools that, while they have overlapping functionality, should be applied in different situations. Preference should not matter when deciding which to use, only the desired functionality.
ST is invaluable for performing complex calculations which would be tedious and irresponsible to do in LD. For instance, we have a process that requires the optimization of agitator height, rotations/hr, differential pressure, and pressure to complete a process within a specified period of time. This requires solving systems of equations. Can I do this in LD? Perhaps but I'd be a fool to try. Even if I get it working, it's not practical to troubleshoot. So ST is the right tool for the job.
LD is appropriate for visualizing logical flow and elucidating connections between inputs and outputs. The same process that I outlined above uses LD for sequencing, opening valves based on process step, starting and stopping motors based on conditions, etc. I could write the whole thing in ST, sure, but that's just adding a layer of abstraction that is unnecessary. The LD will look quite similar to the actual wiring - why would I intentionally restructure the logic so that it no longer resembles the physical wiring?
The question of if a program can be maintained by a less skilled technician is inherently solved by choosing the appropriate programming language for the job. To use my above example, I want Joe Maintenance to be able to understand why a machine isn't running within the realm of his knowledge and responsibility. I don't expect him to have training in multi-variable calculus, nor should he need it for his job. I do want him to be able to quickly see and understand why a motor isn't running, or a valve isn't opening.
I didn't need to 'dumb down' my program so that Joe can understand it. I just properly organized it and judiciously chose when to use ST and when to use LD. When a contactor fails, or a valve feedback prox gets smashed, then it's well within maintenance's abilities to troubleshoot and this problems are easily identified in LD. If it gets to the point where they cannot identify the cause of an issue in the LD and they suspect it's my ST module, then I actually want that 3AM call. It means I didn't do my job properly, and I didn't test, test and retest.