Of course it is true. And of course it does not make common sense - common sense usually made by brain/mind.
If you cannot mirror properties of target machine - you cannot optimize code for that target - period. Any computatiuon made in compiler will be potentially different from the same, nonoptimized computation made in target. The more computations have been optimized in the compiler the bigger probabilty you'll get wildly different code.
However, if you do not have the target datatype you dealing with during compilation, you are destined to simulate them.
Example: ((unsigned char) 2) + ((unsigned char)255) = 1
That is in C. In ruby you'll have to manually check for overflow, and do it for each operation. You can invent classes all kind of things, but why? Use a language with types, and the check will be done for you by you Core Duo.