Though it would require nearly a total rewrite of the current system, it would also be interesting to make a "dynamic alchemy" where almost anything could be mixed with almost anything, and rather than fixed recipes it calculates the results from the properties of the ingredients and the skill of the user. The user skill essentially increasing the number of ingredients that can be compressed into a single object.
To prevent the creation of "super objects" all you'd have to do is add an balance instability factor in the result. Something that adds a lot to one area should be constructed by the alchemist to subtract a lot from the other. If it doesn't, then there would be some kind of instability in the object. Random negative attributes to balance it out would be one way... personally I like the idea of introducing a chance for the item to explode/disintegrate/grow teeth and consume its user at a random interval...