For those following along at home, a bit more testing showed that what I posted before didn't work with calibre 2.9 and earlier. This, however, does appear to work in 2.9 and 1.48:
Code:
from calibre.constants import numeric_version as calibre_version
...
for action in self.menu_actions:
self.gui.keyboard.unregister_shortcut(action.calibre_shortcut_unique_name)
# starting in calibre 2.10.0, actions are registers at
# the top gui level for OSX' benefit.
if calibre_version >= (2,10,0):
self.gui.removeAction(action)
self.menu_actions = []
# rebuild menus...
self.gui.keyboard.finalize()