Coming from a team of people developping on CUDA, the precision is limited on a GPU if you want to maintain high performance, it's usualy single precision and some operations can even be performed in half precision. Actually double precision is fully gone from the latest Titan I think. That means that you cannot have good enough precision for proper stability by covering both very small and very large (and everything inbetween) scales at the same time. The choice of centimeter makes sense for a game-oriented solution as most of the effects that needs to have enough stability to not fail on collisions and intersections will happen within a range of some centimeters to a few meters away from the viewpoint. So I guess just like for rendering on a GPU, scale matters MUCH. That's the main reason for GPU renderer to have a ray espylon setting which introduce some bias to attempt to fix the numerical errors for very small or very large scales. I'm not a developper myself so I cannot tell if such bias can be introduced in particle simulation without compromising the correct behavior though, but I suspect that if it could be implemented, that would only work by using a different particle size and count in extreme scales.