Второе назначение не игнорируется. Давайте разберем код построчно.
$my_array = [];
some_function($my_array);
function some_function(&$array)
{
Теперь символ $my_array
(в глобальной области видимости) и символ $array
(в локальной области видимости функции) являются ссылками на один и тот же пустой массив.
// assign a value to a new key in the empty array
$array['somekey'] = 'somevalue';
Это изменяет массив, и оба символа все еще ссылаются на него.
// set the array to reference this key
$array = &$array['somekey'];
Эта строка сообщает PHP, что символ $array
теперь должен ссылаться на строку 'somevale'. Но на символ $my_array
это не влияет. Если вы хотите изменить значение, на которое ссылаются оба символа, вы просто используете обычное присвоение:
$array = $array['somekey'];
и оба var_dumps будут отображаться одинаково.