Precedencia: operador lógico o vs. ternario

Considera lo siguiente:
(EDITAR: he modificado ligeramente la función para eliminar el uso o las llaves con el operador ternario)

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

El problema:

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

Soy consciente de que esto se soluciona fácilmente mediante el uso de llaves:

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

La pregunta: ¿Por qué no|| operador se atajo en este caso?

Soy consciente de que el OR lógico tiene la precedencia más baja entre los operadores condicionales lógicos binarios, pero pensé quetiene mayor precedencia que el operador ternario condicional?

¿Estoy leyendo mal elDocumentos de MDN para precedencia de operadores?

Respuestas a la pregunta(2)

Su respuesta a la pregunta