Since the discarding of food that would make you grow is in the DLL, it should still do that (unless changed for ST).
I have just looked at the ST Python code relating to population assignment a bit and I think it has some issues. Some of it is just a preference, but some of it is more serious and is likely to be having a significant adverse effect on the AI players.
I prefer the fix FFP has to the updateHumanCityTurn Python that makes it ignore the avoid growth setting so that it is allowed to assign population points even when this is active. It is relevant mainly for two situations. The first is when the borders expand, it allows formerly unassigned population to be assigned to any newly available planets. The second is when you gain happiness so that formerly unhappy population can work. In ST (and the original FF, as I recall) they are not automatically assigned in either case if you have the avoid growth turned on - you have to do it manually or they do not work, which is just a waste of production and commerce. With the FFP adjustment those now happy people (or people with newly available planets to work) will automatically go to work on a planet that it picks. I just checked and in FFP even for the human player if avoid growth is on it prioritizes (randomly) either production or commerce for the newly assigned population, so that isn't done just for the AI like I was thinking it was. I also checked ST and this particular priority adjustment is not in there (it is a comment and two lines of code after the "Barebones Production" lines in doCityAIUpdate, so it would be around line 199 of ST's CvAI.py if it was in there).
I also see that ST is only doing anything in updateHumanCityTurn for the human. This will tend to leave the AI with unassigned population points for various reasons. If the city loses happiness (perhaps a happy resource was plundered or there was some unhappiness from the war weariness effect, for example) and then regains the happiness, the population that was deassigned for being unhappy will not get reassigned unless there is a full reassignment (which only happens for getting nuked or captured). If the population grows, only one population point gets added to a planet - it does not do not a full reassignment for that, so if there was already a point or more unassigned from a temporary loss of happiness it will still have the same amount not working the planets. In effect, if you plunder a civs last copy of a specific happy resource you can permanently reduce the working population of any star system that was, at that time, at the happy cap or below it by less than the amount of happiness you just reduced them by. Each of those newly unhappy population points will never work for that AI player again even if they regain the happiness resource or build happy producing buildings. I also think that any population point that a city grows by that is over its happy cap will also never get assigned at any time in the future either, no matter how much more happiness they get in that city. Once it is unhappy for any reason, it looks like it will never get reassigned to a planet by anything short of being nuked (which tends to reduce the population, as well as wipe out a planet, so most of them probably won't be working after that either since they will probably be dead).
Since the border pop code in onCultureExpansion is using updateHumanCityTurn and in ST that does nothing if the player is an AI, it will also not assign any unassigned population points (if there are any) to work the newly available planets from the cultural expansion if the player is an AI (but will do so for the human, if they do not have avoid growth turned on). They will just keep being unassigned even though there are now places for them to work, so a system with sufficient food to grow the population over the inner zone planets' total population limit before the borders pop is actually a bad thing (ideally, it would go over that limit right after the borders pop, so the new population point has a place to work), and ditto for the second border increase. It looks like this is also an effectively permanent condition since it would take a full reassignment to get them reassigned which, again, only happens when getting nuked or captured. But when getting captured the cultural borders are almost certainly only going to cover the innermost zone unless it is recapturing a system that was taken from it. So it looks like the best way for the AI to get fully productive star systems in a lot of cases is to have them captured by someone else and then recapture them...
I'm pretty sure you should have the updateHumanCityTurn actually do its thing for any player, not just the human (in spite of the function name). Alternatively, the onCultureExpansion function could directly run AI.doCityAIUpdate(pCity) (no second parameter specified gives it the default of -1, forcing a complete reassignment of all population) instead of calling updateHumanCityTurn, and the onCityGrowth function could remove the second parameter to also force a full reassignment if it is an AI controlled city. Just making updateHumanCityTurn work for everybody is easier.
One of the more significant AI alterations in FFP was to make sure the AI was always assigning all available population to work, up to the current limit. This improved its performance significantly and the performance cost is small (and easily worth it for the better AI).