Specialized roles suck the distributed knowledge and skill from different practicing heads and tries to stuff it in one central place.
The people who are freed of the additional skill (burden), slowly reduce practicing the skill and day-by-day they become weaker at that skill. Gradually, they are completely out of touch and stop caring about the skill. Ultimately, they start feeling that they are not qualified enough and also someone else with the specialized role is now really responsible for that skill.
The person with the specialized role, is exposed to more situation & starts practicing the skill a lot more. With all that practice, they hopefully get stronger at that skill. But in the process, as they are completely focused on this specialized skill, they care a less about other things.
Over a period of time, creating skill silos, who barely understand or appreciate the other side.
Net-net, IMHO specialized skills leads to local optima and might be good to start with, but not good for global optima over a period of time. The hard part with specialized roles is that once you are down this slippery slope, its very hard to back out.
Dysfunctional organizations with product, design, architecture, development, testing, deployment and production support silos reinforce my believe.
A really strong collaborative culture with collective ownership and frequent role rotation between these silos seems like the only way to rescue organizations out of this specialized role mess.