That should be possible, but requires a major overhaul of the system. Basically, you would need a request system that would deal with this kind of thing. All items, crafted, built, placed or otherwise, get requested. The request manager will resolve these requests either by items from the stockpile (if available), waiting (harvestable items) or crafting requests.
Crafting requests, in return, will be simple: The request system requests the ingredients for said item from itself and sends a random/the most skilled/a free/specially marked crafter request to craft X.
By using this system, you get a simplified request interface that also allows you to make use of multiple crafters (for example, ordering 40 chairs with 4 carpenters will take 4 times less time).
I haven't looked into the code at all yet, so I don't know if/how items can be reserved - the request system would likely have to be aware of that (i.e. avoiding that two requests can take the same item and therefore create bottlenecks).
You could even have designated harvest zones (trees/rock/berry bushes/crops?) that would only get harvested if there is a demand for it - therefore, avoiding clogging up your precious inventory space. Such a system could also easily deal with "Keep X in inventory" requests, by doing periodical inventory checking. This could happen in the background (e.g. if your carpenter has lots of active orders, these are prioritised - but if he has nothing to do, he'll make sure that there are always 150 dinner tables for one in your inventory).
Another extension, as slightly mentioned somewhere before, could be white/blacklists for crafting recipes. Therefore, for example, an apprentice could make all the ingots while the master itself could create Fine Golden Chandeliers - one creates the ingredients, the other crafts the thing. In one flawless process, the system reserves/produces these things as required.
It could be beautiful. It sounds like a very interesting thing to do however, I might give it a shot.