Есть (как минимум) три фактора, которые внесут элемент хаоса в попытки создать правильный порядок:
1) Способ сохранения. Данные сцены сохраняются в yaml структуру процессом, вообще не гарантирующим, что порядок сохранения элементов будет как-то соответствовать их порядку в иерархии сцены. И даже более того, сам этот процесс немного меняется от версии к версии, поэтому более детальный ответ будет сильно специфическим.
2) Способ загрузки. Перед передачей данных сценическому графу их нужно считать анализатором, и хоть он и правда читает построчно, но в итоге преобразования в доступные структуры порядок данных также меняется. Могу лишь сказать, что на это как-то влияет fileID объектов, но детальнее я не разбирал эту тему.
3) Вы сами вносите ещё больше беспорядка в процесс, руками меняя порядок элементов в иерархии. Просто потому что это никак не влияет на структуру файла сцены.
Тем не менее порядок гарантировать всё же можно. Например... отсортировав, как и предлагал отвечающий выше.
// using System.Linq;
atoms = GameObject.FindGameObjectsWithTag("atom");
Array.Sort(atoms, (a, b) => string.Compare(a.name, b.name));