The question is: who is generating this error? Is this really the UART driver? Or is it simply the stty command line tool that can not handle these large baud rates?

Probably you have to try a small UART test C program where you set the baud rate with the system function and then transmit some bytes. Then you know whether the system call fails or not.

From the driver side I see no restrictions. If there is a divider that can be used to divide the base clock, then it should work. However the base clock may differ from one i.MX CPU type to another type. For example on regular i.MX6, the base clock is 80 MHz, but there is a fix division by 16 in the UART. So the clock rate should theoretically go up to 5 MHz. On i.MX6SX, there is an option to use 24 MHz as UART clock base and as far as I know the standard driver clock tree code will actually use this setting. So here the clock can be 24MHz/16 = 1.5MHz at most. So maybe this is the restriction here.