Farmers seem to be assigned to a new field based on the “size” of the grid when dragging the area. This doesn’t take into account the tiles inside that area that are not farmable. I created a 12x12 field over a small pond (and my wall) to try this out, and it assigned 7 farmers to work on it. There was only couple farmable tiles, and so there were only 2 farmers working and others were idle at home, unable to work.
Now this is obviously an extreme case and dumb play. Also I know it’s not a bug and it works like it’s supposed to. But sometimes there are roads etc. in the middle of the fields, and for those cases, I think the farmers should be counted based on the farmable tiles instead of the grid size.