I've got a section in "the
Permaculture City" on the pros and cons of urban food growing, and I think there are a large number of factors that make it challenging. There are examples of cities that seem to have grown a large amount of their own food, such as Havana during the "special period" after the Soviet collapse, but for the most part, cities have rarely been a significant source of high-calorie foods. The traditional pattern, until the 1960s, when cheap oil and refrigeration that allowed food to be shipped long distances, was for cities to be fed by the farms surrounding them (hence the strange license plate theme for New Jersey, "The Garden State," because NJ, rural NY, and rural CT fed NYC via truck gardens until the sixties). This is an ancient and healthy pattern.
Land in cities is expensive, and food is cheap, so the economics are weighted the wrong way. Urban soils and air are often toxic, so urban food may not be that healthy. The nutrients for fertility must be imported--it's very hard to find
enough land to grow
compost crops or manure-producing livestock in the
city proper. Most urban farms are growing vegetables, which, though nutrient dense, are low in calories (a pound of kale has 150 calories) and it's hard to find enough land to grow the grains and other high-calorie crops that we need to give us 2000 calories a day. And there are several more reasons why growing enough food to yield a full diet is very hard to do in a city. The theoretical minimum for enough land to
feed one person is around 1/4 acre (not including fertility crops or manure), though in our current food system it's more like 2-4 acres. And there's just not enough open land per person in a city to do that, except in the big, post-war sprawling ones that have large peri-urban green spaces at their edges.
So although I think growing food in cities is important as a way to connect people to the land, and has many other benefits, I'm not sure that a good designer would arrive at urban land as an appropriate place to grow significant amounts of food. There are good reasons to do it, but we're kind of imposing our desires rather than arriving at a wise solution when we try to feed ourselves from within the city limits. The ancient pattern since the dawn of civilization is for cities to be fed by the rural land that surrounds them, and, as long as we've got cities, this makes sense to me.