Hi folks.
Even with thicker roofs, walls, etc, the bleeding through problem will be present if you zoom out noticeably.
This is a limitation of Open-GL. When the difference between two separate surfaces becomes too small, relative to the distance between the camera and these surfaces, Open-GL cannot discriminate between the two and show both.
Just ideas.