The "direct flight" is the major reason, but another less obvious reason is that the airline would run out of numbers (due IT limitations). At its peak, XJT was running 1300 daily flights as COEX, no way to give each individual flight a separate number.