Por que um dicionário “não está ordenado”?

Eu li isso em resposta a muitas perguntas aqui. Mas o que significa isso exatamente

var test = new Dictionary<int, string>();
test.Add(0, "zero");
test.Add(1, "one");
test.Add(2, "two");
test.Add(3, "three");

Assert(test.ElementAt(2).Value == "two");

O código acima parece funcionar como esperado. Então, de que maneira um dicionário é considerado não ordenado? Em que circunstâncias o código acima pode falhar?

questionAnswers(7)

yourAnswerToTheQuestion