Despite the confident assurance in C-evo's in-game manual under "City Management" > "Automatic Population Management", automatic worker management does not always squeeze every last food unit out of a city's surroundings when set to "Maximize Growth".
In my latest game (Book 7, 1889 AD) I have New York population 8 with the central tile giving two food and with seven coastal tiles giving two food (and one material and three trade) each. There's an unused grassland that produces three food and one trade when I take control and move one of the coastal workers onto it. Food storage is 15/30 and there are no units to support, so I can see no obvious reason why the program doesn't do that for me.
The reason must be this: because the city is size 8 or more, a single extra food unit is turned into money, not adding to the food store. So here the "Growth" would be unchanged while the total return would be less (one gold plus one trade instead of one material plus three trade). The city optimization formula "Maximize Growth: m = f" doesn't apply when one of what is, on the face of it, "f" is converted to tax, making the grassland option no better a food producer than the coastal option. That's a "de-amplifying" effect! With grassland and coastal having the same actual food boost (zero), the program applies m2 = 2p + t + r, where the coastal clearly wins.
(When I switch to "Maximize Production", one coastal worker goes to the grassland so that another can get three material from the forest with no overall food loss.)