Having a list just adds a little more complexity and potential confusion for the user, so it'd be nice to collapse it if possible.
It seems that updateRenderState() could maintain a single nullable "pending render state" that gets updated (as in step 5 of https://immersive-web.github.io/webxr/#apply-pending-render-states) and when not null gets applied in https://immersive-web.github.io/webxr/#apply-pending-render-states.