Okay, so apparently it is entirely hardcoded. What's worse it checks for the exact item IDs - "screwdriver", "wrench", "welder", etc.
I guess my proposition would then be manyfold. First off, replace the checks for specific IDs with checks for specific flags - TOOL_SCREWDRIVER, TOOL_WELDER, TOOL_WRENCH, etc. Checking for a flag is not much harder than checking for a given ID, as far as I can see at least. Have the "charges" variable be drawn from the tool's 'charges_per_use' regardless of the tool ID. Then edit all existing tools to have their corresponding flags. (might need a new function for that, a-la "has_ready_tool_class" that checks for an item with a given flag that has either has no 'charges_per_use' or has as many free charges as its 'charges_per_use'... as well as a few other functions down the line, it seems)
Second, add the cordless drill tool. Fluff it as having a compartment for various bits, from wood/metal drills to screwdrivers and torque wrench heads. Effectively, it will perform as a wrench, screwdriver, and "drill" - drill being the new tool type - compact and lightweight single item, at the cost of using power.
Third, implement the "drill" tool type, and "bolts" to complement nails as construction fodder. Its use could be expanded over time, but its primary use is in construction, replacing the welder and duct tape for attaching things to other things. The idea being, you put the two objects together, drill some holes in the overlap, and fasten them with bolts. The drill's power use is much lower than a welder's - it might use as little as 10 or 15 charges to the welder's 50, allowing to save on that. But it will need bolts, which must be either found or crafted. Bolts can be crafted from scrap as most simple metal items, but must either require a high skill, or a bolt threader.
And of course you can use the drill as a weapon.
Just tossing some variety into the game. I'd undertake it myself, if the new SDL2 version were more compli..compil..compliant with compiling.