A ordem de loop através de um objeto pode ser quebrada apenas durante a iteração?

Eu acho que a maneira preferida de percorrer um objeto é esta:

for (var prop in obj) {
  if( obj.hasOwnProperty( prop ) ) {
    console.log("obj." + prop + " = " + obj[prop]);
  } 
}

MDN diz que

Propriedades excluídas, adicionadas ou modificadas Um loop for ... in itera as propriedades de um objeto em umordem arbitrária (consulte o operador de exclusão para saber mais sobre por que não se pode depender da ordem aparente da iteração, pelo menos em uma configuração entre navegadores).

Então, se eu não modificar as propriedades do objeto durante a iteração, posso garantir a ordem correta, ou seja, a ordem na qual as chaves / propriedades aparecem em um objeto ou essa instrução significa outra coisa?