Thank you for your answer. I had thought of the possibility of conflicting shortcuts. But that is easily solvable. An extension could request a shortcut to Nautilus. At that point, if
A newer version of Nautilus decides to assign that shortcut ==> Nautilus refuses to give it to the extensions (without generating errors – the extensions’ developers will eventually find another shortcut, if they feel like updating their code)
Two extensions ask for the same shortcut ==> Nautilus assigns that shortcut randomly to the first extension of the two loaded (the extensions’ developers will have to find an agreement at some point)
Everything should happen without generating errors, at most warning messages to the error stream.
Nautilus already wraps some GLib objects into its own Nautilus* flavors. It wouldn’t sound so strange to wrap also the GtkAccelGroup type into a NautilusAccelGroup type.
But the user will have no idea about conflicting shortcuts. The user will only see is an extension that from one day to another stops offering a shortcut, and they will blame the extension’s developers for not updating their code to the latest version of Nautilus.
Also a shortcut is… a shortcut! It is not meant to be the only way a feature can be accessed. The extension will still work via other means.