The first section had me screaming, YES, YES, YES... Now I don't have to write this very article about the difference between actually trusting and empowering your engineers and giving them little tasks to do.
A lot of the rest applies to big companies.
However, I would change the conclusion, because the thing is, the culture of "little tasks, little trust" has taken hold even where there is no bureaucracy and no specialization of roles. It happens at start-ups as small as three people.
The antidote is simple, in the start-up case: Give each person one or two big projects to focus on, based on their strengths and interests. Carve up the work by large areas, and give people ownership and responsibility. Look at each person as individual. If someone has no talent or interest in product decisions or UX decisions, they'll need support on those, or a project that doesn't require them. If they have interest and some talent, mentor them. If, as a company, you are trying to make progress on too many things in parallel, or have a shortage of talent in certain functional areas, be real about that.
Frameworks and style guides and even "database guys" aren't a problem, if they are good and support you. However, I think the ideal is probably to have small project teams that grow from one to, say, five people, each containing engineering, product, and team management talent, and not enforce conformity across project teams over team productivity and happiness.
Edit: Though honestly, a lot comes down to individual preferences. A lot of engineers love being handed a style guide. A lot of engineers love doing tasks off lists.