"Just do it right the first time" is such a maligned attitude when directed towards coders ("No, boss. I need to make revisions!"). Interesting that the perspective isn't being applied equally.
Shouldn't you know what you want to do, if you're a professional? If you don't know what you want to do, then you need git or other version control. If you know what you want to do, why do you need version control or patches?
If you're a professional coder, shouldn't you know exactly what you want to accomplish without needing to experiment? Why not then write the final version of your code all at once? Why use revision control?
For one, professional graphic design is still an art. An applied art, but an art nonetheless. And as in all art, experimentation and happy accidents are essential. (And of course Photoshop/GIMP are also used by digital artists, not just graphic designers).
Second, (and I feel like I'm stating something beyond obvious), people make mistakes and people change their minds, even if they are professionals. Here, non-desctructive saves many hours.
Third, you obviously forgot that clients also change their minds, and can demand this or that change. Again, here, non-desctructive saves many hours.
Fourth, it's not different than say, the ability to revert a repo to a known state, that a SCM system gives, something that professional programmers consider essential.
What you say basically amounts to: who needs SCM and good prototyping features like a REPL. A professional should just start coding and already know his goal and how to achieve it (rolls eyes).
I'm saying professionals (people who are skilled in non-easy stuff) know what they want and just do it.
Probably there are just many people out there who using PS and aren't professionals, which is okay...
If you don't know what you want to accomplish, you need to experiment. This is when those non-destructive features come in handy, but if you know the goal and how to achieve it, they aren't necessary.