This bit if code will always use the first error message:

  if (!empty($errors)) {
    if ($field['cardinality']) {
      form_error($element, t('There are errors in @field_name value #@delta:', array('@field_name' => $instance['label'], '@delta' => $delta + 1)) . theme('item_list', array('items' => $errors)));
    }
    else {
      form_error($element, t('There are errors in @field_name:', array('@field_name' => $instance['label'])) . theme('item_list', array('items' => $errors)));
    }
  }

Unlike CCK, D7 cardinality unlimited is defined by -1, 1+ for 1+ fields, so in theory, it should never be set to 0.

  if (!empty($errors)) {
-    if ($field['cardinality']) {
+    if ($field['cardinality'] != 1) {