more specifically, it hides the faces that are covered up by another brick. I think it also combines faces that are side by side?
but it doesn't just hide bricks that are not visible to you, like if you're in a house, the bricks outside of the house in front of you are still being rendered, even if there's a wall between you and them
The point is to optimize box searches and raycasts, and combine several close-together bricks into larger vertex buffers. It actually doesn't have anything to do with hiding covered faces.
For example:
You can see how it doesn't go down to individual bricks, the smallest cubes are 4 TU wide and contain about 50 bricks each.
If you want to run a raycast from the camera to the skyscraper, it's completely pointless to check collision for bricks in cubes that the ray doesn't intersect. The same goes for box searches. Without this structure you'd have to test collision for every single brick!
Another use is that if a cube is out of your view, the bricks in it aren't rendered. Unfortunately the nodes are way too small and you end up with thousands of them for large builds like blockoseattle. Now blockland checks whether 10000 nodes are visible on your screen, every frame... this is why rendering many bricks is so CPU intensive.