Extra update. What makes this even more puzzling is that EL can find the object while OGNL cannot. On the first request, ${userLanguage} will display the correct value, but <s:property value="#session['userLanguage']"/> will display nothing.
On the second request, both expressions will display the same (and correct) value.