For me both `<ctrl_L> F10` and `<ctrl_R> F10` register in the keybinding dialog as `<primary> F10` and both work. The decoding and naming of keys is buried in the depths of GTK or GDK or the Xserver or the Wayland server or .. well you get the picture :-) so Geany has no choice if something decides the controls are not separable.
Geany just calls a GTK function to convert keypresses to the text name that shows in the keybinding dialog, we have no control over it. (As an aside this causes issues with the `<ctrl>CXV` keys when in Cyrillic, Geany gets a Cyrillic character and has no way of knowing its a `C` or `X` or `V` key making copy, cut, paste impossible in Cyrillic unless the user rebinds the keys).
One thing to be aware of is that `<ctrl> F10` and some other key combos are snaffled by some desktops for things like maximise/minimise, and the desktop overrides Geany.