Running the same simulation two times in a row might product different results. This is something we expect.
The differences should start off being very small, due to small differences in rounding from one run to the next. One thing causing differences in rounding is the work being distributed across cores in a different way. This distribution is adaptive and dynamic, so any change in the environment might change the parallelization. Another source of differences is randomized algorithms causing work to be done in a different order, which also causes the rounding to be different. Both of these are trade offs between performance and reproducibility. For ZivaVFX, like almost all numerical software, we emphasized performance over reproducibility.
These small rounding differences can magnify into visible differences over the course of the sim. This is because the simulations are sensitive to tiny changes, just like the butterfly effect. An extreme example of this is a tiny change in the trajectory of a vertex that can cause it to either hit or miss another object, which will very quickly escalate into big differences between the sims.
Normally the differences between separate runs of the sim are not very big. If the differences are very large, that usually turns out to be due the simulation being on the verge of instability and explosion anyway. In that case, any sort of small change can cause huge changes or explosions, so the right thing to do is change the setup so it's more stable.