I think first you have to consider what the button labels are for. Are people going to know what "C" means when they're playing Defender or Mortal Kombat? Only if you tell them, and then there's a bit of an indirection process happening getting from the controls list to the button letter to the actual physical location of the button. ("shoot" is "B", "B" is right here...)
And then there's the question of whether you want to have games like PlayChoice/NES or other console emulations. If so then having instructions that tell the player "B is A, A is B" or something can be really confusing. (Though if you get down to individual games you can say things like "A is attack, B is jump") But if your cabinet will play a lot of different games there's going to be a compromise somewhere.
I think that, in lieu of a better solution, giving the buttons some kind of basic label is helpful. That way you can refer to buttons (in on-screen control guides) not only by position, but by their label.
Really, there's several problems with people unfamiliar with the machine stepping up and playing a game. If your machine has significantly more buttons than the game does, then there's the problem of the player recognizing which buttons are "active". They may get confused by the fact that there are extra buttons there, even if they know which ones are active - they may just feel the other buttons with their hands, and think they're relevant and try to push them, as their eyes will be on the screen. Some players may simply be turned off by the machine if it looks too complex. But if you get past all that then they've got to somehow find out what the game controls are. Some people use dedicated LCD text displays on the control panel for that - I think it's a good idea, because it ensures that the control information is always accessible without people having to pause the game or whatever.
Personally, I'm pursuing a better solution.
