On Aqua I observe that the behavior of checkbuttons and radiobuttons that use bitmaps is correct if the bitmap is supplied at creation, but not if supplied via config later. Here is test code that demonstrates the issue for checkbutton.
checkbutton .b
checkbutton .c -bitmap question
pack .c
.b config -bitmap question
pack .b
In the test code below observe that the top button changes appearance when checked and the bottom one does not. Also, the bottom button is smaller and appears to be missing its border (which maybe part of the problem, but does not explain everything, since the top button turns gray all over when pressed).
Note that on Aqua the indicator is not shown if the button is a bitmap (unlike on unix), so the bitmap needs to change appearance to indicate the state of the button.