For example, can an item in the "weapon" type class be assigned functions from the "tool" class? Can properties from consumables be added to items that aren't consumed? It'd be pretty wicked if there was a wee little write-up about the constraints of the system.
Well, make a backup, and test around. But for the consumable thing, I'd say you'd be able to do it on certain things, like swinging a sword for example.