Not sure if this is a bug or intentional, but a target_id equal to 0 is considered not empty:

function entityreference_field_is_empty($item, $field) {
  $empty = !isset($item['target_id']) || !is_numeric($item['target_id']);
   ...
 

Not a major issue, but is causing issues in my edge case.