Villager assigned to a workstation in a cell space of 2 blocks or more operate normally, trade normally, and restock normally. However, when another unassigned villager comes into the workstation's range, the existing villager loses that workstation and the new villager becomes assigned to that workstation.
Maybe it's because a villager isn't assigned to a workstation all the time; instead, it periodically "un-assigns" and checks for a available workstation, therefore allowing other villagers to budge in and "steal" the workstation?
Related issues
Comments

Duplicates MC-150806.