It seems that the SetColor command is just ignored as black is always the outline colour.
$k = GUICtrlCreateLabel("", 10, 500, 20, 20, $WS_BORDER)
GUICtrlSetColor($k, 0xFF0000)
GUICtrlSetBkColor($k, $GUI_BKCOLOR_TRANSPARENT)
I am clearly missing something fundamental... and after all these years. I hang my head.