Почему массив неправильно передаётся в функцию без символа «&», при сортировке?
Это передача аргумента по ссылке (php.net/manual/ru/language.references.pass.php). Если передавать не по ссылке то в функцию уходит копия данных, и с ней она работает, а снаружи они не изменяться.
Потому что без & в функцию передается не переменная, а её копия.