I agree passing an empty string/NULL to drupal_set_message() is a nonsense and must not display an empty message box on the screen, but :
Assuming that these following messages are valid since they are explicitly allowed by specific conditionals within drupal_set_message() function (and are therefore correctly displayed) :
drupal_set_message('0');
drupal_set_message(0);
Legitimately, this one should be valid too, but isn't. Nothing is displayed
drupal_set_message((float)0);