ISO C states that variables with static storage duration (that is, global and static variables) must be set to zero before the program is started, unless they are explicitly initialized by the programmer. It also states that variables with automatic storage duration (local variables) will have a random value at startup.
So this isn't something that the Freescale docs need to mention, the C programming standard is clear. Assuming of course that the compiler follows ISO C, which Codewarrior does as long as the startup file is executed.
---
Codewarrior does not clear NO_INIT segments, so it is possible to preserve variables in RAM after a reset, assuming that the reset wasn't a power-on reset. With the S12 you can check if the reset was caused by the COP, clock failure or power-on. If the cause was the COP, one can assume that the RAM is still intact.
The best solution is indeed to do as already mentioned: store the variable in non-volatile memory.