I think it depends on the project really. In my current project I have 21 (almost) identical modules which have to be set up (if selected) through the same sequence of steps. If it were only one module it would be no problem in ladder or STL (or FBL etc. for that matter), but when you get to 21 of them which while identical in structure, are all one off prototypes, which means things like switching and charging times are all different and still need to be synchronised with one another at various stages of the process, so things get more complicated.
The first point is, that when I'm finished with this project, some other poor sod is going to have to maintain it. And this system is going to a research institute where one and a half years into a two and a half year project, the guys who are going to be using it are still coming up with new ideas and that will only accelerate once they get their hands on their new toy. So my poor successor is probably also going to have to extensively modify things.
Now the actual control is pretty simple as such, but if you write it in STL you have the choice of either writing one big long bunch of spaghetti, or doing it half way neatly with multiple loops and sub-routine calls. But I have no idea of how competent this guy is going to be (never mind having a say in who it's going to be). You can comment the stuff till you're blue in the face, but there will always be something where the other person just won't understand what you mean. Don't tell me you've never written what you believed to be a well-commented program, only to come back to it a couple of years later (or six months, for that matter) and find yourself saying, "Now what the heck did I mean by that!
Just to make life even more interesting, I don't even work for the supplying company - they have other, extremely project relevant experience to contribute, but they don't have any PLC people. So they're not interested in return business. In fact they are praying that when it goes out the door, they are never going to hear from the customer again.
So as a result I've done as much as possible of the program in S7-GRAPH, in particular for the set-up and shut down phases. That way you have a nice graphical overview of the 21 parallel paths that come down to common synchronisation points in various places, you can see at a glance where everything is at any particular time and it should be relatively easy for even a pretty inexperienced guy to take it on.
Modifications are easily made by changing the first parallel path and then cutting and pasting the changes to the rest, before modifying the addresses. Sure, it's cost the customer about 700€ more, but he's already saved that in my time alone, because I was able to do the program much quicker and since this project is budgeted at over 100+ M€, that is really peanuts!
Just to conclude, the other place where SFCs are very useful is in Batch processes, as in Chemical Plants etc. In the end, it's horses for courses, but sometimes the course is a little bit different than you might think at first glance.
Hope this has given you something to think about,
Cheers
Roy