Apparently if you have a 'wall to wall carpet' , i.e. if a block has a door then the next block is carpeted, then the villagers will not try to traverse into the house, this seems to be the reason for the crowding behavior , i created a quick test, you can see , in two attached screenshots... , you can see once the carpet on the block next to the door block is removed, that the villagers just enter and seem to spread out more.
Update:
Apparently if you have a 'wall to wall carpet' , i.e. if a block has a door then the next block is carpeted, then the villagers will not try to traverse into the house, this seems to be the reason for the crowding behavior , i created a quick test, you can see , in two attached screenshots... , you can see once the carpet on the block next to the door block is removed, that the villagers just enter and seem to spread out more.