Quando la sessione è scaduta, un request.getSession(false) (e solo con false, attenzione!) restituisce null. Su cui chiaramente non puoi invocare nulla. Altrimenti hai un bel NullPointerException e se hai un solo <error-page> per Throwable, è abbastanza logico che ci finisci dentro.
Ma il punto non è il <error-page> (che è giusto per trattare le eccezioni in generale) ma il fatto del null che ovviamente va considerato e controllato.
Mille grazie, tutto chiarissimo, sono proprio un sciocco.