My approach mixes "preset for multiple songs" and "preset for each song"
Every song still gets a preset, but some presets share a common rig.
I gig with backing tracks and cue songs at my feet so I use numbers - each song preset has the same number as its backing track song. Easier to associate and memorize.
This lets me use the huge preset memory of the axe-fx and my gordius little giant footswitch. The gordius has a 10-key function so I have instant random access to any preset and song in my show. For presets/songs that "share" a rig, the rig is still tweaked to fit that song like a glove and therefore gets its own preset.
For presets sharing a common rig, the preset name becomes a mashup of song titles.
For example:
"Your mamma don't rollover" (mamma don't dance, roll over beethoven)
"U really got Louie"
"Brick Word Jam" (Brick House, Word Up, We're Jammin)
"Cruel Little Pretty" (Don't be cruel, Little Sister, Pretty Woman)
Strange as it is, it makes dialing new firmware easier because the preset name tells me how many songs/presets use that rig. I just reset amps for those presets/songs and I'm done, but the song-specific tweaks are preserved.