>> It rather surprises me that software, a creative and digital medium like the above, is not futile and that you can still make a good living at it.
Anyone can write a story, create a drawing, or take a picture. It may be a bad story, a crude drawing, or a poor picture, but they can be done. However...software cannot be made by an novice. You can't wing it, have beginners luck, or stumble through it. No amount of "can do attitude" will make your code compile. Hence, you can still make a good living at it. If writing software was easy, everyone would be doing it.
This has always been the promise of e.g. PHP. There's been a ton of people who were complete novices, whose first lines of code were a .php file that they uploaded over FTP to some shared hosting.
What I will grant is that a novice is going to be completely lost if they try to start with a "modern" app. There's way too many moving parts. When webpack (implicitly included in e.g. create-react-app) fails to build because something's wrong in an implicit dependency, a novice is going to be totally screwed.
I think that is more of a fault with "modern" apps than it is with web developing in general, ie, dependency hell with arcane libraries doing god knows what for god knows what reason. If you simplify, then anyone and their grandma can write a basic html page with some tutorials and google-fu.
Anyone can write a story, create a drawing, or take a picture. It may be a bad story, a crude drawing, or a poor picture, but they can be done. However...software cannot be made by an novice. You can't wing it, have beginners luck, or stumble through it. No amount of "can do attitude" will make your code compile. Hence, you can still make a good living at it. If writing software was easy, everyone would be doing it.