So many problems in software occur because programmers and designers don't communicate well all the time. Why don't more designers learn to code themselves or have engineers build abstractions better suited to them?
People's minds work in different ways, they can process thoughts differently, solve problems in completely different but equally valid ways.
It's a mistake to assume everyone should possess the same skill set. Also not everyone should be a full stack engineer although full stack engineers usually can achieve high productivity and improve efficiency and understand client requirements better.
In the mid-2000s Google was only looking to hire designers who could code. But after interviewing the designers for a few rounds, they could not find satisfying designers who can code well. Later they realized that their best developers weren't necessarily the ones who could also design, and vice versa. So they changed their strategies.
The best thing to do is learn enough about the jobs of the people you work with to be able to speak with them intelligently about what you need to accomplish together.
One of the biggest problems with designer who code and developers who design is that they don't know enough about the domain to feel confident in the work, and end up only coding what they can design or designing within their limited coding abilities. The best projects I've participated in have been those where both skill sets were involved early on, and solutions were arrived at by looking at problem through the lens of technology as well as design.
Can knowledge actually handicap you?! Yes, it can, depending on your skill set, ability to ask for help and involve others. If you only design and code within your current scope of your knowledge it is certainly a handicap, if you learn to seek help from others and extend your skills by leveraging the skills of others you'll get past this trap.
Jared Zimmerman, Director of user experience at Wikimedia+Wikipedia