Precedência: Operador lógico ou vs. ternário

Considere o seguinte:
(EDIT: Eu alterei a função ligeiramente para remover o uso ou chaves com o operador ternário)

function someFunction(start,end,step){
  var start = start || 1,
      end = end || 100,
      boolEndBigger = (start < end);   // define Boolean here
      step = step || boolEndBigger ? 1:-1;
  console.log(step); 
}

someFunction()
// step isn't defined so expect (1<10) ? 1:-1  to evaluate to 1

someFunction(1,10)  
// again step isn't defined so expect to log 1 as before

O problema:

someFunction(1,10,2) 
//step IS defined, shortcut logical OR || should kick in, 
//step should return 2 BUT it returns 1

Estou ciente de que isso é facilmente corrigido usando chaves:

function range(start,end,step){
  var start = start || 1,
      end = end || 100,
      step = step || ((start < end) ? 1:-1);
  console.log(step); 
}

A questão: Por que o|| operador atalho neste caso?

Estou ciente de que o OR lógico tem a menor precedência entre operadores condicionais lógicos binários, mas pensei quetem maior precedência do que o operador ternário condicional?

Estou interpretando mal oDocumentos MDN para precedência do operador?

questionAnswers(2)

yourAnswerToTheQuestion