Turns out I forgot to escape '+' characters in the Base64 encoding used for the Jetspeed NavigationalState url parameter...
Until now, there never has been any report about this causing a problem.
But, while testing the JSR-286 TCK against Websphere, I finally encountered one.
Websphere turns out to replace embedded '+' characters with a space character in an url, thereby completely breaking the navigational state!
Solving this is really a trivial change: I'll add an escape for '+' characters by using '.' (just picking an easy and safe replacement character, '_' and '-' are already used for '/' and '=').