Hint brushes give you some control over how a map is split up into vis nodes by the compile tools. The 'HINT' side creates a new splitting plane, the 'SKIP' sides are ignored. In some cases you can improve performance by strategically breaking up nodes. Personally I think they're rarely needed if you keep limiting visibility in mind when designing a layout.
Here's a very crude example, showing a U-shaped corridor from above:
┌──────┐ ┌──────┐ ┌──┬───┐ ┌──────┐ ┌──┬───┐
└──┐ │ splits into: └──┬───┤ or └──┤ │ or └──┬───┤ or └──┤ │
┌──┘ │ ┌──┴───┤ ┌──┴───┤ ┌──┤ │ ┌──┤ │
└──────┘ └──────┘ └──────┘ └──┴───┘ └──┴───┘
As shown above, there are multiple ways in which this corridor can be split up into vis nodes. In the first 3 cases, every node is visible from any other node. But in the last case, the top-left node is not visible from the bottom-left node, and vice versa. With a hint brush, you can force the compile tools to produce that particular space partitioning.