The bug
It is intended that one of the upper or lower half of a door compose a village. But both of them can compose a village in certain circumstances.
This bug has existed from Minecraft 1.7 as far as I know.
How to reproduce
1. Make a village with a single door at (0, 64, 0).
2. Place a new door at (6, 127, 0). Make sure that the upper half of the door is at (6, 128, 0).
3. Place a villager near the second door and see the lower half is added to the village.
4. The upper half of the second door is added to the village in 6 sec.
5. The upper half get released from the village in another 1 min.
6. 4. and 5. are repeated.
In step 3, the village center is calculated as {(0, 64, 0) + (6, 127, 0)}/2 = (3, 95, 0).
Then village radius is sqrt((6-3)^2+(127-95)^2) + 1 = 33.
The distance from the village center to the upper half of the second door is sqrt((6-3)^2+(128-95)^2)=33.14, which means the upper half is out of the village.
In step 4, Minecraft does not check if the door has been added to a village or not because the upper half is out of any village.
I tried to reproduce this. For me, only the upper door was added to the village (checked via NBTExplorer). Can you provide a screenshot of your setup? Once you attach it, this report should be reopened automatically.