Sorry about the delay in responding. I've been traveling.
I don't believe overloading the base instance of GetMsgPanelInfo() and
GetSelectMenuText() will achieve the desired goal. Overloading
functions works great when the _caller_ wants to choose between
variants of a function. In this case, though, the call is being made
via a pointer to a EDA_ITEM (in EDA_DRAW_FRAME::SetMsgPanel(),
currently at common/legacy_gal/eda_draw_frame.cpp:582). The caller has
no knowledge of whether the object requires the third parameter or
not. Since EDA_DRAW_FRAME is common to all applications, it's an all
or none situation.