open two tabs (or windows) in browser with view:
<h:commandButton value="Click me 20x!" />
then click the button on the first tab 20x or more -> then click the button on the second tab -> you will get the most beloved ViewExpiredException.
oam.SerializedViewCollection drops the saved state for 2. tab from map.
remove the successfully restored view state from map. This can be done, because each SerializedViewKey is unique over all requests for one HttpSession - see DefaultFaceletsStateManagementHelper.nextViewSequence(FacesContext). Because each request has unique sequence number, we can the "just restored" one remove from the map, because it can never come from client again.
Open question: the previous statement is true except the double submit problem: JAVASERVERFACES_SPEC_PUBLIC-559. In this case, server can process same request (with the same sequence number) twice.