It's an interesting idea and topic. My first thought is that it could possibly work for some roles, but in your two examples, I think it's not going to work well.
By giving a player a winger role, you're asking him to dribble past players and cross. Someone who cannot dribble or cross will struggle in that case. You'll have more chance of success if it's a Winger Support, but then why not give the player a role that better suits what he's capable of and still fits the tactic?
If you're using a Poacher, he's supposed to get good chances that he needs to finish off. Low Finishing (though there are more attributes involved in actually finishing a chance) will not help. With low finishing, you're better off just using him as a Support role or another position, imo.
Low attributes won't mean they'll always fail at dribbling or finishing, but they won't be as consistent with it. Consistency is a fantastic thing to have. You need to be able to rely on a striker finishing his chances or your winger beating his marker.
That said, while I don't agree with using a complete opposite player in a role, you can make sacrifices here and there. In a Poacher I am happy with him having lower Finishing if he has great Composure and Balance. I don't mind a Winger if he cannot dribble but is still fast so that I can teach him to knock the ball past opponents.
Or pick different players for different situations. Have a fullback that is average defensively, but fantastic going forward if you expect to dominate but use a fullback that's a better defender if you expect a tough match and he's up against a tricky winger.
I am very interested to hear other opinions on this and whether someone has done something like this, using an unsuited player for a role.