I searched through various previous posts and it seems that the z-ordering issue with mplot3d has been met many times. When multiple Poly3DCollections are added to an Axes3D object, e.g. via multiple plot_surface commands, the z-ordering routine is not capable of producing the right output.
However a single Poly3DCollection seems fine even for moderately complex surfaces (see e.g. mplot3d example code: surface3d_radial_demo.py).
In this context I wonder if it is possible to combine multiple Poly3DObjects and add only this newly created one to the Axes3D object. This way the internal z-ordering should be capable of producing the right output, I guess. Of course tricky problems like intersecting faces cannot be overcome by this simple approach.
Thanks for your comments!