The item giving is not bugged, it is just not set to give useful items. For example, an Ashwake dragon treasure code is
<Treasure>
<Liklihood>65</Liklihood>
<GameModifier>
<ModType>Resource</ModType>
<Title></Title>
<Attribute>Gold</Attribute>
<BoolVal1></BoolVal1>
<Value>20</Value>
</GameModifier>
</Treasure>
<Treasure>
<Liklihood>35</Liklihood>
<GameModifier>
<ModType>GiveItem</ModType>
<Title></Title>
<Attribute></Attribute>
<BoolVal1></BoolVal1>
<Value></Value>
</GameModifier>
</Treasure>
It basically says killing the dragon will give you gold 65% of the time, but the other 35% of the time you will get an item.
But notice this vs. the Air Elemental Lair Treasure
<Treasure>
<Title>Lair Cleared</Title>
<Desc>Hidden amongst the stones you find an item. (+1 Fame)</Desc>
<Liklihood>100</Liklihood>
<SFX>Goodie_Stones_01</SFX>
<GameModifier>
<ModType>GiveItem</ModType>
<StrVal>Uncommon</StrVal>
</GameModifier>
<GameModifier>
<ModType>Resource</ModType>
<Attribute>Fame</Attribute>
<Value>1</Value>
</GameModifier>
</Treasure>
Notice that they both give an Item. But this time it is an uncommon item, while the above specifies no rarity. This is the "flaw" you are seeing with loot in general. You are correct that loot doesn't scale with level of the monster, but one can set it up to scale with level of the lair. If you want better treasures for more difficult monsters, you need to just edit the code here and fix it up for youself. But I do agree that Dragons should offer better loot than just common. It probably should be "Uncommon" loot.