Observed in the field... a deployer has 250+ records in the external_term table and the end result is a single, seemingly random "semester panel" in the MAP UI. This happens because the client-side selection of current and future terms relies on the "main" term store having loaded all terms into memory, which it typically hasn't (just has the first page). So if you have more than 20 terms in the db and the first page of results doesn't include the "current" term, the results are effectively unpredictable. Through what amounts to an accident of logic, the UI picks the "first" term on the first result page, where "first" could mean any number of things depending on how server- and client-side sorts were applied.
The short term fix is going to be to load all terms into the term store. The long term fix should be to delegate lookup of current and future terms to the server, even if just because date-based calculations on the client side are always a bad idea. But more generally to ensure the calculation logic is always consistent.