It would also make the blacksmith MUCH more important for the fortress, since you'd probably end up making the tools necessary for most professions on-site. Which, of course, is fairly accurate for how pre-industrial societies worked.
You'd probably have to abstract a lot of it out into general clustered items. So instead of making a hammer, and saw, and chisel, and plane, etc for the carpenter's shop, you'd just make -carpenter's tools- which would be required to build a carpenter's workshop.
To some extent it is implemented in some things like buckets for wells and some workshops. If something is going to be part of the workshop and already implemented for other reasons, like buckets, I am not against it. But making tools part of the workshop adds hassle for what? It makes no sense, adding UNrealism.
What I like about your idea is the abstraction, but in many cases there is no need to make them simply as some building material. "Carpenter's Tools" can exist, but as a separate item. So the carpenter grabs the tools and goes to the workshop to work. Only tools that are realistically physically part of the workshop should be treated as such, like how a well needs a bucket as physically part of it but the buckets used for carrying water away from it are separate instead of needing to be built into it. This solves the problem of taking apart the workshop just so your carpenter can use a a better saw and hammer with it, which would be silly. It would also allow them to use the best tools regardless of which workshop they used, so long as no-one else was using them at the moment.
As for details made on-site in general, soap is pushing it for me.
Bleeping soap, I'd hate to see more hassles like that

. Though I would not mind so much if I could trade for the stuff.