The roles are driven by business needs. The more budget is available, the more you can afford to stratify roles into front-end, back-end, and architect. But it's up to the business to decide what roles they need, not us. The output of engineering departments is something normal people have to be able to reason about. We don't build bridges just for other engineers. We do it with taxpayer money to serve taxpayers.
That's the thing the article seems to be glossing over categorically. I kept looking for the distinction between skill sets/productivity thing and what I'll just call jobtitle capitalism. You can't cash in on being master of none, but being a Jack-of-all-trades doesn't make you look competent either.
My counterpoint is that if you had to rely on craftsmen for everything, the number of buildings we can have is always going to be limited to what they can produce. We need handymen software developers because Pandora's Box has been opened and the business need for software is utterly insatiable.
It won't be long before we're longing for good ole' days of code schools. People will be entering the software field with nothing more than CodeCademy on their resume soon.
EDIT: What's wrong with codecademy? See, figuring things out in a way that efficiently translates human ideas to machine processes isn't straight forward and usually involves multiple attempts. Which means, I, as a craftsman, need to be pointed to shortcomings of what I do multiple times to arrive at the ideal solution. Whether I studied what I'm doing in college actually has less to do with this process, though, and more with my own humility towards my own craft.