I have my own "Sub-OreDictionary-Thingy" in GT (ItemStack -> Data). I use getOres almost only to register Recipes with the good old OreDict Crafting Recipes in order to be NEI and CraftGuide compatible without effort or additional Handlers. I know ID+Meta -> Data doesn't allow multiple Entries per Stack, but if I only allow Material based Registrations to have Data, it is enough to work efficiently and to be able to recycle almost every Item without exploits or recursive Recipe scanning algorithms. If the OreDict needs something, then it is a "ItemStack->List of Strings"-Map for faster checks.
Yup, that's exactly what we do in our mirror of it: