The order of creation is not guaranteed. In cases where the asynchronous loading does not take the same time per delegate, you could see any random order happening.
The difference between qmlscene and qtquick2viewer is odd though, and could be caused by QTBUG-31203. If you prefer the qmlscene like behavior, try using this as your C++ application:
@
int main(int argc, char* argv[]) {
QGuiApplication app(argc, argv);
QQuickView v;
v.setSource("main.qml");
v.show();
return app.exec();
}
@