Custom Field Type hook_field_widget_form() not showing #title values
According to hook_field_widget_form() the $element parameter will already have a #title set. If you take a look at the docs for PHP array operators:


  The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.


Emphasis mine.

So your new #title is currently being ignored.

Try this instead:

$labels = array(
  '#type' =&gt; 'select',
  '#title' =&gt; t('Label'),
  '#options' =&gt; $options,
  '#default_value' =&gt; isset($default_label) ? $default_label : '',
  '#suffix' =&gt; '&lt;br \&gt;',
) + $element;


The example in hook_field_widget_form() might be a bit confusing as it uses an approach similar to your original one, but if you look closely neither of the properties added exist in the list of defaults that $element will contain, so there's no chance of a collision.