As per current Spotfire design, when doing the join, there's no row order guarantee afterwards, and it may change depending on algorithm used internally.
It seems we used different algorithms for different data sizes because of memory / cpu tradeoffs.
This is an enhancement request to maintain the row index order even after join operation , no matter which algorithm being used under the hood.