Почему «прямой» цикл for быстрее обратного for или while?
возможно в том, что там список а не массив?
Причина в том, что вы написали какую-то ахинею и пытаетесь ещё померить, а результаты замера ахинеи, будет тоже ахинея.
P.S. Если вы хотите максимально быстро обойти DOM, то используйте `nextSibling`.