Все, что гарантировано в спецификации, - это нестабильный метод сортировки на месте.
Так что да, разные реализации могут использовать разные алгоритмы, и поскольку спецификация негарантируя стабильный алгоритм, различные нестабильные алгоритмы будут приводить к разным порядкам, если значения вашего массива будут оцениваться как равные, то есть любое ложное возвращаемое значение из функции сравнения, которую вы передаете Array.prototype.sort()
.