This! In fact, I"ll expand it do include a subset of larger companies as well.
The company I work for has multiple divisions. We primarily build technology. In some divisions, the people who write code are, indeed, just laborers who build exactly what is provided them.
But in a couple - magical - divisions, the people writing the code understand the intent, the business, and the objectives. It's much harder to find, hire, and develop these people. It's especially bad when someone is good at one facet but not all of them. It's really difficult to scale. That's why so many places "grow" to a point where things like the business, design, architecture, etc. are divvied up. They also end up being (individually) "expensive", at least on paper.
However, if you can make it work, the employees tend to love it. There is some survivor bias - people who don't like it are amongst those who cycle out. "I'd rather just code than deal with foo." It's also hard to scale.
Honestly, there's merit in both approaches. As for personal satisfaction, it depends where you land in terms of what you truly enjoy.