I support the idea of replacing "drop where you stand and then later go and grab a replacement" with "claim replacement and later go and pick it up, and when picking it up, shed the old item first, releasing the claim on it while doing so". You'd then usually get the junk in the fresh item stockpile, which is non optimal when it comes to disposing of old garbage clothing, but probably beneficial when wanting to reforge (or repair, if that's implemented) worn armor.
I don't see a huge need for any special military hand-me-down protocol, even if it would be nice. It's probably sufficient for them to file down to the forge stockpile for dropping off the old item and pick up the new one regardless of whether the new one was shed by someone else or it was new.
I definitely would like to see improved stockpile definitions as well, such that wear and size could be specified (I want to keep all underwear for fortress use, apart from the non citizen sized ones, which can't be used, and thus should be disposed of). If stockpile wear definitions were possible dropped worn items might not match the stockpile settings, and thus trigger hauling jobs to stockpiles that do take them (refuse/trade/destruction dumping route stop linked stockpile).
There's multi hauling for some tasks (in case of fruit it's overly aggressive, as I get a lot of junk plants carried back even when zones are specified to only pick fruit, quite possibly plants in the same tiles as the fruit), but so far I've never observed dorfs to haul multiple pieces of worn clothing to their rooms, even when a large pile of old clothes was dropped originally. Instead, they tend to pick up one item at a time. If drop on replacement would be implemented there'd be no hauling to the rooms any more (and not much need for the cabinets, although some dorfs stuff their cabinets/floors with unworn items of maximum quality, for some reason, probably personality based).