Ok, I see it now.  A 3d polygon with a hole would need a MOVETO, but that information is never really conveyed properly.

As for your aside, you are absolutely right.  I am the third maintainer of this codebase, and there is a lot of stuff in it that has been "don't touch because it might break".  The reason for the oddity in the object creation is probably one borne of "getting the job done".  The idea for most of these things is to let the 2D plotting functions do their jobs, and then augment them with the third dimension information.