Reviving this to throw in my own idea, which I was going to start, myself...
It is downright insane that a dwarf can be born knowing his favorite food is giant red panda, especially when no giant red pandas exist in that world (no chaotic temperate forests).
What we really need are "Flavor Profiles".
The old expression that something "tastes like chicken" is not just a joke, it's real.
There are actual scientific studies done on it. Fact is, most mammals outside a few outliers like cows taste much the same as most birds.
In fact, many of our vegetables are often bred for either distinct flavor or at least a distinct texture. Most herbs and spices are actually poisonous weeds to which humans happen to have an immunity, and those poisons turn out to be really tasty when diluted over some otherwise bland meat.
What I propose is that, instead of having an insane system of picking exactly one type of meat or vegetable out of a list of hundreds of animal and plant types, of which a player will rationally be capable of providing
maybe two dozen, DF instead have a system of flavor "coordinates". These could be as simple as a set of 2+ numbers that could be something like 0-255.
Then, we assign each type of food item a set of coordinates on that chart. In the interest of not having a
crazy amount of work to do, this could be a one-time random generation of numbers within a given range, so that similar foods are near similar foods on this graph. There should be some guidance, so that onions don't taste like eel, but one could, in general, set up the flavor profile so that anything that "tastes like chicken" might be something around 30, 130, 130, 20, with a range of about plus or minus 20 from those numbers. Then, the "typical green vegetable" might be 200, 160, 100, 100, with a plus or minus 30 from those numbers. Citrus fruits might then be 120, 200, 220, 180 with a plus or minus 35. (This example has each coordinate meaning something like "bitter", "sour", "sweet", and "strongly flavored", respectively.)
Dwarves then pick three to five coordinates for "likes", and then one or two for "dislikes", and then, "nearby" foods from those coordinates are chosen as the favored foods. If some animals have very similar flavor profiles, then they'll all be very likely to land in the same dwarf's "preferred food" zone at the same time, which would mean that as DF starts adding more and more creatures into the game, this continuing problem of preferred foods becoming less and less likely to actually exist in the game would be countered into perpetuity, as dwarves simply "like" more foods as more foods become available. The inclusion of
dislikes would similarly add some flavor (no pun intended) to the food procurement process, as picky eater dwarves would help with the problem of two-food fortresses just barely getting around that one-food minimum we had previously.
These could be part of the raws permanently once chosen, so that a procedural generation of flavor profile only needs to be run once, unless you're generating procedural plants and animals, in which case, you'll still have a program capable of telling you that blizzosaurians do, in fact, still taste like chicken. Alternately, it could be regenerated every world from some sort of variable flavor profile system similar to how values are now variable for human civs.