So I did some investigating [FE8] and documented a few of the routines governing checking whether various options can be done.
231A0 checks the dancing option and starts out with seeing whether the character has the dancing ability marker. Removing this comparison basically means anyone can use rings and dance in the right context. There's a line that stores "0xA5" somewhere - 0xA5 is the item number of an otherwise useless item called "Dance". The item itself doesn't do anything and the "some adjacent player unit has moved" check is not in the item usability table - it's instead located at 25B6C. If we dummy this section out then dancing can happen regardless of whether adjacent units have moved (if they haven't, then the dance does nothing). (If you want to make someone unable to refresh units, hijack this and feed it bogus coordinates.)
Meanwhile 230F0 has the overall check, containing both refreshing and using rings. There's a line comparing r0 to 0xC, which is the weapon type "Rings". Changing this can create things like vulnerary dances.
(Note that if you try to make, say, a Paladin do a dance, the game will freeze up presumably due to animation issues.)
Look, I'm gonna dance with all my weapons!
Wait, I forgot how to actually dance...
A nightmarish dance... (Note: This actually just refreshes units normally.)
I also found some other routines that happen when you try to get to the menu:
249AD: is inside ballista?
24A29: is inside ballista?
23A55: checks if has item
248C5: checks if can use ballista
2494D: is inside ballista?
23159: checks playing
23195: checks dancing
2418D checks to display "stealing"
243D8 checks summoning
244FC: if class # = 66 (Demon King) do things
23E7D: if class #=33 (Rogue) do things //presumably related to picking locks
23C81: do unknown things
23D15: do unknown things
23041: if class #=51 (Phantom) do things (well, more like don't do things)
23E1D: do things
23DB5: do things
23FE2: if class = phantom don't do things
24035: more phantom stuff
24091: more phantom stuff
240ED: more phantom stuff
228A5: do stuff
22911: if status not 0x10 (rescuing?)
2298D: do stuff
229F5: do stuff
232B9: if not already moved, not a phantom, and has an item
22F35: not already moved, and... hmm supply?
23F65: do unknown things, and not a phantom
4F449: branch back to 4eda1
Most of these routines seem to return 3 if the thing shouldn't be done and 1 if it can be.
Also note that phantoms can't rescue, be rescued, use items, or trade. Presumably one (or a few) of the ones checking whether people are phantoms can allow us to restrict trading. A couple of the routines also seem to check the "supply depot" ability on a character, but afaik that ability doesn't really work.
Also, I wonder if the summoning code can be used to create an Aum staff...