No tengo idea de que pasa...
He probado esto en mi casa y me da igual...
se supone:
Un Tipo Int es de 2 bytes, entonces
2 elevado a la 16 = 65536 esto es para los tipos unsigned, pero si tiene signo el byte más significativo no lo podemos usar, segun esto cuando es con signo tenemos:
2 elevado a la 15 = 32768
... Eso me enseñaron en la U.
JAJAJA
Es el compilador, si lo compilo en el rhide y lo ejecuto todo funciona como te pasa a ti, pero en compiladores más viejos, como por ejemplo la version 2.0 de turboc si sucede el desbordamiento de memoria.
El codio que produce el rhide es de gran calidad, asi que es probable que posea hasta cierto punto rutinas de reasignacion de memoria para evitar desbordamientos de este tipo.
Tal vez sea problema.. o mejor beneficio del compilador que estes utilizando, seguramente entre todas las opciones u optimizaciones de compilacion, habra alguna que deshabilite esta propiedad.