Regarding interactons with the rest of the game, it's really not a problem, once you craft a gun, it would just be a (gun) item with certain properties, and that's more or less the end of it. The only time all the sub-assemblies would come into play would be when you're interacting with it through the gun crafting interface.
Similarly, I'm not terribly concerned with item spam, because we wouldn't generally be spawning gun components by themselves that much, mostly it'd be a matter of franken-guns assembled from parts from many different guns. Likewise, you'd have just a few e.g. barrel items, and properties like length, thickness, calibre, etc to differentiate them for the full-on procedurally-generated goodness.
It would be a LOT of overhead to specify the items that make up an existing gun, unless we could have some kind of reverse templating system that takes an existing gun definition and automatically determines what parts make it up. I really don't want to make building a parts manifest for a gun be a requirement to adding one to the game, and the alternative is to have guns not be dissassemblable by default, only if they have such a manifest. So basically the template thing would be the only way to go, and I'm not sure how that'd work.
Technical issues aside, there's the question of tone. We're shooting for a tone where you're scraping by and scavenging/bodging together the things you need, and gunsmithing isn't really the kind of thing where you can make it good enough with a bunch of elbow grease. To do anything more advanced than servicing gun parts that are intended to go together, it takes serious know-how, and serious tools.