After build with IAR 6.50, hello2 example, MQX 4.0.1 libs build with MQX_ROM_VECTORS 0 I can see in my .map file:
"A2": 0x400
rw section .vectors_ram-1
0x1fff0000 0x400 <Init block>
.vectors_ram inited 0x1fff0000 0x400 vectors.o [3]
- 0x1fff0400 0x400
and
ram_vector 0x1fff0000 0x400 Data Gb vectors.o [3]
Now, I was a bit wrong with IAR, I double check on hardware the startup process. The IAR library makes a copy of vectors to fill 0x1FFF0000--0x1FFF003F. Only 16 vectors from the vector table in ROM. The rest is left untouched by IAR startup code. Then, I can see the actual writes to vector table in RAM is done in _psp_int_install() MQX function. The callstack looks like this:

and after _psp_int_install() executes, the vector table at 0x1FFF0040 is filled with addresses of _int_kernel_isr(). So, in conclusion, it seems that with IAR, only 16 vectors are actually copied from ROM to RAM. Remaining vectors are just filled with _int_kernel_isr(). Thus, you need to call _int_install_kernel_isr() for all your custom kernel interrupt routines with vector numbers >= 16.