Как a и b попадают в sort()?
Перебираются элементы numbers и передаются в compareFunctionarr.sort([compareFunction])
https://developer.mozilla.org/ru/docs/Web/JavaScri...
UPD:А если текущий и следующий элемент в середине массива, то как они сравниваются с теми что были в начале?
Они перебираются до тех пор пока массив не будет полностью отсортирован:const array = [25, 8, 7, 41, 1, 3];

array.sort((a,b) => {
  console.log(`compare ${a},${b}`);
  return a > b ? 1 : a === b ? 0 : -1;
});Выводcompare 25,8
compare 25,7
compare 8,7
compare 25,41
compare 41,1
compare 25,1
compare 8,1
compare 7,1
compare 41,3
compare 25,3
compare 8,3
compare 7,3
compare 1,3
[ 1, 3, 7, 8, 25, 41 ]
https://repl.it/repls/HappyUnwieldyCoderesource
a, b это элементы массива numbers, текущий и следующий