Implemented (question about shortcuts getting disabled with their menu entry still stands though, but could solve the issue without this knowledge).
There might be much more ideas that could be of interest for improvements to the current way (now and before my changes) :
1) go to declaration of the method enclosing the position of the cursor
1bis) go to the start of the method enclosing the position of the cursor
2) after you jumped to declaration or definition : the cursor is at the beginning of the line : you can NOT jump back to the point you came from (in the sense of find declaration/implementation) because your cursor has to be on the method name. Counter example what if the first word on the line is the return value of a user defined type (enum, struct, class) where does the user expects to jump to then [one could argue if the return value is not such a type then jump to the method name]
3) goto declaration of local variables does NOT work (it never did), make it work ;-)
4) goto definition of the class containing the method enclosing the position of the cursor
PS : currently I still have 1 difference :
void CodeCompletion::BuildMenu(wxMenuBar* menuBar)
put the cursor somewhere on 'CodeCompletion', through the right click I can jump to declaration or definition, but not with the menu or short cuts.
EDIT : last issue also solved, this happened in the case that there was more then 1 match, I have no idea why the partial check I commented out now was needed. The method was always called in this context (right click : idGotoImplementation or idGotoDeclaration) and now also from the menu context. So the original patch where I started from was suffering from this bug too.
if ((/*event.GetId() == idGotoImplementation &&*/ !sel->GetImplFilename().IsEmpty()) ||
(/*event.GetId() == idGotoDeclaration &&*/ !sel->GetFilename().IsEmpty()))