I am following a good tradition and replying to myself.
Actually it appears there's a bug in MQX source code. The file Freescale_MQX_4_0\mqx\source\io\serial\polled\serl_pol_kuart.c, line 958:
while( ! sci_ptr->S1 & UART_S1_TC_MASK )
must be replaced with:
while( ! (sci_ptr->S1 & UART_S1_TC_MASK))
to bring it in peace with operators precedence.
Best regards,
Mikhail Burakov