Disclaimer: I don't know OpenCascade's inner workings. But in general, for rendering/visualization you can draw the polygons in any order as long as you figure out which not to draw (culling) and which is closer to the viewer (e.g. via z-buffer or z-sorting). For simulations it's necessary to efficiently look up neighboring edges for calculations, so additional info is needed besides vertices and face indices (e.g. winged edge/half edge data structure, not sure what's OpenCascade's approach).
what is difference between building a mesh for visualization vs meshing for simulation?
Disclaimer: I don't know OpenCascade's inner workings. But in general, for rendering/visualization you can draw the polygons in any order as long as you figure out which not to draw (culling) and which is closer to the viewer (e.g. via z-buffer or z-sorting). For simulations it's necessary to efficiently look up neighboring edges for calculations, so additional info is needed besides vertices and face indices (e.g. winged edge/half edge data structure, not sure what's OpenCascade's approach).