I've surrounded a village with a 2-high fence and lit it up with torches, and all was hunky-dory until I heard a zombie trying to tear a door down.
It was just one and I dealt with him quickly, but there was a creeper somewhere in the area of the village too. I placed more torches, made the fence taller near "steps" where one could reach the top with a long jump, and... there was the zombie again the next night.
So, either I must have missed something (I fenced off quite a bit of area - I plan to make the village grow quite a bit) or there's some obscure spawning rule I don't know about. How to solve this?