@Koshling, did you know, since multicore processors, there is no memory atomic instructions even on aligned addresses? Even stupid read or write are not atomic! And I must again analyse everything from the beginning.
Or do we assume, the game can, and always will be able to, use only one core at once? -- I have a feeling, it could crash, if not even a single CPU instruction would be atomic, but I can be wrong.
Not true. In single CPU (not single core) system memory read/write is atomic (well serialized via the cache, so logically atomic). On multi-CPU system you have to use interlocked instructions, which is why you'll find several places where things like InterlockedIncrment() and so on are used. These force cache-convergence in multi-CPU systems (so it has a penalty), so guarantee consistency.
Also the use of critical sections in the current code ensures that the multiple threads are not operating on the same data at the same time in most cases (the exceptions should all be using Interlocked instructions as discussed above, but for the most part critical sections guard the bits that matter). The result is that, most of the time the various threads are operating concurrently, but not trying to access the same data. On the (relatively rare) occasions they contend for access to a piece of data, they are serialized via critical sections (or in a few simple cases use of Interlocked methods)