I've started to rebuild the factory system, and I've found another inconsistancy, namely the ratio of raw materials -> blocks -> furniture. Previously I avoided the issue by simply not allowing gnomes to use the furniture making workshops, but it really should be addressed, especially if dwarves are going to be able to build automatic factories.
The problem is simply one of how to account for any possible item that can be run through the machines, and how to determine how many inputs it takes to make a given output. For regular items this could be hard-coded into the script using preset conversion rules, but for producing items that come in multiple, raw-codable types (tools, weapons/armor, etc), or for inputs that vary in size (corpses and corpse parts) a standard rule should exist.
The previous version used a simple volume conversion, using the hard-coded item sizes, rounded down for each conversion. Boulders have a volume of 10000, logs have a volume of 5000, bars and blocks have a volume of 600 (except wafers, which are 200), most furniture has a volume of 3000. So a boulder could be cut into 16 blocks, and it took 5 blocks to make most furniture items. There are a number of gameplay problems with this method, though, since it produced far too many blocks (and it isn't especially realistic either to presume volume of wood or stone could be converted into blocks with near-100% efficiency, either). Then there's the question of the furniture workshop, which could exploit the block cutter to make 8 items from a single boulder, were a player to have access to both.
A possible solution would be to use the MATERIAL_SIZE tag instead - basically to use the same number of wood/stone blocks as metal bars that would be used if the item were to be made out of metal. So 3 blocks to produce most furniture, and could be broken down into the same amount of blocks (with some penalty percentage lost). The stone and wood cutters could have their numbers placed directly in the code, I guess. As for using corpses...not really sure what to do about that, I suppose each 'bone' item could be counted as a single block though. (It takes 3 bones to make one bone helmet that could also be made using 3 bars, so that makes sense.)
This makes automatic machines a lot less impressive, of course. One and a half items per boulder, instead of three and a bit, using a system that takes a while to set up and has a good chance of killing your own citizens. Not sure if being automatic quite makes up for that, though the additional speed might still make them worthwhile. Or the fun and challenge of just getting them to work.
So the question is, what about the furniture workshop? Going by the same standard, it would use 3 blocks to make most items, instead of the current 2. Or you could just say that making items by hand is more efficient, if slower, than doing so by machine, which I guess isn't unreasonable. It would make the automatic furniture maker even less appealing though. Or the machines could use a smaller, hard-coded material number for each separate item, though this is messy and wouldn't work well for tools/armor/weapons that have variable sizes.
(On a related note, I'm not entirely sure how one can make a cabinet with a volume of 3000 out of three bars with a combined volume of 1800. You might say it's because cabinets are hollow, but the game calculates weight as if the volume is solid. I guess conservation of mass just isn't a thing? Other fun facts: large gems have a volume of 30, and small gems have a volume of 5. I think these measurements are in cubic centimeters, which means that DF furniture is actually pretty small overall.)