In the initial placement it does indeed test if each degree is below the
maximum possible before continuing. This a necessary but not sufficient
condition being able to build a graph. After the initial degrees have
been sampled, it proceeds as I had explained.

You're attempting to generate an impossible graph, so I don't understand
what you were expecting would happen.

Of course I showed the impossible graph example on purpose just to see whether all the vertices are added at once or one by one. If I try to generate other graphs, the verbose changes so quickly that the only line I see is "Added 10 vertices" etc. So okay, it checks the maximum degree before proceeding. This was not immediately obvious to me from your previous message although I was expecting that.

But now I have the same question: since in the initial placement the algorithm checks whether all the degrees are less than maximum possible, how is this done? For my impossible graph, would it be that the first degree sequence would be 11, 11, ..., 11, and then it would throw away the whole degree sequence and generate new one (obviously it would again generate all 11, and would never be able to build the graph)? Or would it simply generate degree for the first vertex, and unless it is less than max-possible, it would keep attempting to change it? I think it does the later (that is why verbose says "added 1 vertex"). If so, can we say that the initial degree sequence is drawn from a specified distribution?