If it is true that the same seed yields different worlds on different operating systems, then it is a bug, and should be reported as such.
"has to do with how operating systems handle RNG" is, essentially, nonsense.
Windows does not have a random-number API call. (Attention, nitpickers: yes, I know about the crypto API. That's beyond the bounds of this discussion.)
The C++ compiler Toady uses has, in its library, a LCG PRNG. It's named rand(), and is of good but not excellent quality. +Finely-crafted+, in DF terms. The corresponding routine which initializes or "seeds" it is named srand().
srand() is called once, using the current time as the source of randomness. That is rand()'s only dependency.
The vast majority of the random numbers that DF uses are generated by Toady's own code, using a better (*superior quality*, in DF terms) PRNG called Mersenne Twister. There are no operating-system dependencies in Mersenne Twister.
There is a routine which seeds MT using, again, the current time as the source of randomness. That, and a call to rand() are MT's only dependencies.
However, Toady's implementation of MT can also be seeded with a specific number. When doing this, neither the current time nor the call to rand() are used. Only a single user-supplied number is used. When this is done, there are no dependencies left in MT.
So if the same seed generates different worlds on different operating systems, report it as a bug.