Recipes for item modifications/tagging

I was curious if there has been any work on recipes that instead of creating items (seems to be every single one) actually only modify items. Food already for example passes freshness from one foodstuff to another, and it would be immensely liberating to have a modifying interface.

Examples:
Many guns could be sawn-off, reducing accuracy in exchange for lower volume/weight. Certain gun mods could also be handled this way, for more advanced than applying (and could be removed this way, giving back the item in the process)

Foods could be “salted” or “spiced”, or any number of adjectives, changing traits like taste, nutrition, cooked/uncooked status. Ripening/rotting could be handled easier as only flags of food change, and items don’t have to transform from one to another.

If water was handled by flags for pure, salt, tainted, etc, it would simplify someone making a new recipe if all they are concerned with is that some form of water is used. (a distinction could be drawn for clean vs distilled water)

Armors could have mutation, “weatherproof”, and thermal altering properties. Armors already support condition statuses, defense values, and as well as being fit or reinforced, and this could simplify the interface to those values.

An extra flag could be set so a default option could be chosen, either that something is modifiable, or that it is not. The latter would probably be preferable for armors, not for foods, but a decision would have to be made.

Works already advanced on settings tools to use a numeric ranking of usefulness, and item fabric types could fit right in, i.e. cotton, plastic, metal, leather, etc, which if were not kept in the same value, could allow for variations like leather + superalloy plates which may not be as good as kevlar against say, bullets, but would allow stranger and more flexible combinations of things, such as kevlar leggings or a wool housecoat.

This is a good idea, but it sounds like one of those things that are really hard to code.

Well, all of it could be wrapped up in a struct per object, and which flags were which would all have to be documented. It might require a lot of change in how some of the functions access certain data, but it’d put all the information in one place, and only a pointer would have to be passed.

But that’s still an enormous change that would take a lot of work to implement, no matter how wise an investment it might be.
Are you volunteering to do this?