Rhino isn’t able to split the crossover edge and make two separate planar caps, so it makes a crossed over single surface. It says closed, but there is one part of the surface which is now considered a backface, so it is transparent. Fixable by first manually making one of the caps and joining (which splits the edges), then cap the remaining hole.
Or by using _PlanarSrf and window selecting the edges of the openings. Rhino is smart enough to spot the self-intersection and ask if you want to invoke curve boolean processing. That generates two correct surfaces.