php timezone_identifiers_list() и DateTimeZone::listAbbreviations() -какая разница ?

DateTimeZone::listAbbreviations() с помощью вот такой функции:

function createTZlist() {
  $tza = DateTimeZone::listAbbreviations();
  $tzlist = array();
  foreach ($tza as $zone)
    foreach ($zone as $item) 
      if (is_string($item['timezone_id']) && $item['timezone_id'] != '')
        $tzlist[] = $item['timezone_id'];
  $tzlist = array_unique($tzlist);
  asort($tzlist);
  return array_values($tzlist);
  }

возвращает куда больше временных зон, чем timezone_identifiers_list() - но почему это происходит так?

Дело, в том, что последняя функция вызвалась без обратно совместимых временных зон - иначе бы был получен обратный результат:

// php 5.6.10
$a1 = timezone_identifiers_list(DateTimeZone::ALL_WITH_BC);
$a2 = createTZlist();

echo count($a1); // 583
echo count($a2); // 510

то есть timezone_identifiers_list() с параметром DateTimeZone::ALL_WITH_BC функция вернёт даже больше элементов. - вот это ($a1) вроде как и следует считать списком всех поддерживаемых временных зон PHP.