That different inedible roast is made using the eggshell of the roc egg. Which is never edible
[lua]# ~ dfhack.matinfo.find("CREATURE:BIRD_ROC:EGGSHELL").material.flags
<BitArray<>: 0x167dfeb8>
BONE = false
MEAT = false
EDIBLE_VERMIN = false
EDIBLE_RAW = false
EDIBLE_COOKED = false
Meanwhile, that giant olm kidney is edible when cooked
[lua]# ~ dfhack.matinfo.find("CREATURE:OLM_GIANT:KIDNEY").material.flags
<BitArray<>: 0x167fb050>
BONE = false
MEAT = true
EDIBLE_VERMIN = true
EDIBLE_RAW = false
EDIBLE_COOKED = true
This shows that the material DF considers a roast to be made of is not necessairily the name that is displayed. Interesting.
What the view-item-info script does is check what material the roast is internally made of (which is the first ingredient, I'm guessing), then displays the information about that. Right now, my guess as to why it's the eggshell being used to make the meal is because it's listed first in the raws
[CASTE:FEMALE]
[FEMALE]
[LAYS_EGGS]
[EGG_MATERIAL:LOCAL_CREATURE_MAT:EGGSHELL:SOLID]
[EGG_MATERIAL:LOCAL_CREATURE_MAT:EGG_WHITE:LIQUID]
[EGG_MATERIAL:LOCAL_CREATURE_MAT:EGG_YOLK:LIQUID]
[EGG_SIZE:201000]
[CLUTCH_SIZE:1:2]
The eggshell then gets passed to the function which says it's "Not edible". I'd bet that the ingredients list has the eggshells instead of the whole egg.
[lua]# ~ dfhack.gui.getCurViewscreen().item.ingredients[0]
((mat_type will probably be 42 and mat_index 497, going by the roc egg roast))
If this is the case, then dwarves must use just the eggshell and dispose of the yolk and white.