Thanks for the repro.In fact, this looks exactly correct: you incremented the identity counter once with the first call to reserve_identity(). So the next value to be returned by reserve_identity() is 2. That is precisely what happens here, also after restoring the dump.
Can you explain why you think this is not correct?
BTW, please note that the identity_burn_max() call is irrelevant for the issue at hand.