That's just a standard to make Interrupt Service Routines taking as short as possible. ISR's taking longer lead to longer interrupt latency and other potential application issues.
Smaller code often means faster code (small loopy code of some may take very long).
XGATE ISR code is limited by XGATE memory space, which is 64k.
Regarding shortness of ISR, you may decide to not use XGATE interrupts at all and instead trigger one (software) interrupt and never exit from its ISR.