I cringe too when I see folks just reefing back and forth on a snag. You're right, you can buy a lot of terminal gear for the price of a rod.

If it's in a tree branch, another way to handle it is to reel gently, so the gear doesn't strart swinging back and forth, until the gear is just underneith the offending branch. At that point, give it a quick pop. Usually, you get everything back. If you just jerk it before you've got it reeled up next to the branch, it will just wrap around and probably never come loose.

For spoons and spinners, if they're caught on rocks and not on wood, a quick pop, followed by slack often works. If not, I'll freespool quite a bit of line into the river, hoping that the belly of the line changes the down-stream angle on the snag. After the current puts pressure on the belly, I'll give a good pull upstream and reel quickly. This works about half the time. It helps if you don't use treble hooks.

In rocky spots using drift gear, it helps to use the lightest lead possible. This is conventional wisdom, but how many times do you see guys in rock gardens with excessive chunks of lead hanging up time after time and re-rigging again and again with the same big piece of lead.

It also helps to not just let the gear free-drift, but to reel in slowly during the drift. Just slowly walk the drift gear in throughout the drift. I think this keeps belly out of the line and reduces hang-ups. It also reduces the time the lead has to slip under the bottom of rocks. If handled correctly, you are still skipping along the bottom, just more lightly. If you encounter what feels like the beginnig of a snag, resist the urge to pop the gear with the rod. Instead, increase the speed of the retrieve on the reel. For some reason, in combination with slowly retrieving the gear throughout the drift, this helps to avoid hang-ups.
_________________________
Tad