I'm unable to reproduce the problem because there is no bug to me. I've run your example during about 2 hours.
I confirm that disabling the z buffer has the same effect than adding no z buffer state.
box3 is added first (then drawn last), box1 is added after box3 and box2 is added last (then drawn first). I've got only deterministic results. box3 is always above others, box2 is always below others. It's the result I expected.