I tested around with villagers and used a poison potion on them when I encountered problems with trading and killing the villager.
What I expected to happen was:
1. The Villager would suffer from a poison and after the potion would wear off, the villager would be poisoned again after a new potion, eventually killing it.
2. Whilst being poisoned trades would still be completely normal.
What happened was:
1. The villager did not take any damage from a second poison potion, instead the poison effect particles will appear but no damage is dealt.
2. When poisoned the first time, the villager will only show his trade window for a second, due to the constantly dealt damage.
Steps to reproduce:
1. Build a trench or pen so the villager cannot escape.
2. Throw a poison potion at it.
3. Try to do a trade by right clicking, it will only show the trade window for approx. a second.
4. Wait until the poison wears off, try to throw another potion, the villager will not get any damage from it. The poison particle effect will show up, though.
5. After the unsuccessful poisoning, hit him with the bare hand, he will die instantly.
I found this in 1.4.6, might have already been fixed.
Bug happens in all currently available gamemodes. This 'bug' might as well be a precaution measure against witches, who throw potions (although they do not spawn in villages, as far as I know).