If they were to use a (I believe this is called that) Dynamic address, it would change every time you open Combat Arms to a completely different address.
The ones that are static, may be changed purposefully, but after some updates the hacks still work, meaning it might not be the compiler.
Don't quote me on this, though. I'm pretty stupid.