I believe (and if I'm wrong, I'd really appreciate being corrected!) it's because a button isn't associated with any default representation. That's not the case with MOVE_AXIS (represented by an arrow marker), ROTATE_AXIS (represented by a disc), etc.
This is borne out by looking at the autoComplete method in tools.cpp (that's a link to the source code; the method starts at line 101) in the interactive_markers package. You'll see the switch that fills in the default markers for all interaction_mode types except BUTTON (and the 3D types; not sure what happens with those) starting at line 114.