I've seen some very skilled designers. Generally though, they are the ones with a technical background.
Then again, I'd argue that any producer, artist, qa with some coding experience tends to e better to interact with.
I anticipate that people may disagree, but I tend to believe the best approach is to call everyone a 'developer' and let them do what they do best. It's something that works for Valve and for many successful indie teams, and I fully support that.
My personal day job description is 'producer'. I spend about 80% of the time doing 'producer things'. I like it, but its not ideal.
On my hobbyist project, I'm a developer. I do producer, programming, UI and design work (including some of the pixel art such as projectiles, etc.).
I find that its the best way to go along with everybody on the team.
But to your point, I've seen very junior designers and they can be a pain. The issue here is that aspiring 'game developers' are charmed by this position, which results in a lot of rookies flooding the market. I'm not sure where all of the senior designers are, but for some reason, HR needs to hire juniors... like... straight-out-of-school-prepubescent-juniors. That's probably to cut on the expenses.
The same argument could however be made for artists (a lot of the communication complaints I get from my programmers is about them). And I imagine that this goes both ways (programmers).
What you need is a common language in which you guys can discuss, and a form of 'safe word' where authority is bestowed upon the owner of the field...
So for example, you're discussing about potential ways to improve mechanic X, and the designer comes up with idea A, which is way too complicated. You have idea B, which isn't quite idea A, but the effort is simply not the same. You use your safe word (let's say "ImdacoderheresoIknowbest") and propose to use idea B.
The key here is that this discussion happen before any doc is written for the improvement of mechanic X.