No, hint and skip, if placed correctly, can drastically alter compile times (in either way).
The reason VVIS slows down is because it's doing calculations on which visleaves can see which other visleaves when a player is standing in the first visleaf. As you can imagine, with the map getting larger, this calculation expands exponentially.
VBSP is the process that creates these visleaves. It does this the best it can by seeing what solid brushes you have and cutting the map around those. It
ignores func_details, any other point or brush entity, and some tool textures like clip.
Imagine this scenario, you have this room with a wall through it and a door in said wall:
Now, VBSP could cut it in either of these ways, which way it does really depends on surrounding visleaves.
As you can see, the first method only has 3 visleaves, and the second has 5. 5 isn't going to be a terribly large increase in compile time, but on a much grander scale, with more complex systems, it adds up.
This is where
Hint textures come in. They tell VBSP to cut a visleaf along the hint texture. You use skip on all other faces as skip is completely ignored during compile, as to not tell VBSP to cut on every face of your brush. Putting a bush in the doorway and texturing both faces with hint will make sure that VBSP cuts it in the first method. I don't recommend doing this for EVERY DOORWAY, but it can certainly help sometimes.
So, imagine for a second that your map is being cut the second way. This is taking twice as long to compile because of the increased complexity in visleaves. Instead of using hint brushes, you could use
Visclusters.
func_viscluster is a volume that tells VVIS that any visleaves it touches can see each other at all times.
Imagine that we have this scenario. The blue dot is the player, the cone is where he or she is looking.
VBSP could cut it like this:
From the player's position (more specifically, the visleaf they are standing in. Source does not care about which direction they are facing), they can see these visleaves:
As you can see, VVIS might only take a second to figure out that these are the leaves to render when the player is standing in said place, but it has to do this for EVERY visleaf in your map. It takes a long time.
So, we take this situation and put in a viscluster here (keeping in mind this is a pretty terrible example)
Now, when VVIS gets to calculating which visleaves the player can see, it goes 'Oh, well, they can see a visleaf with a viscluster touching it. That means every other visleaf touching that viscluster can be seen too, so I don't have to worry about those calculations'.
This is extremely useful for big open areas (like the middle of 2fort, 2nd on badlands) where a player can see all of it at once, it cuts down on compile times SIGNIFICANTLY as it throws out a lot of the calculations.
However, it
assumes these things because you told it to. If used badly, this means a lot can be rendered that the player can't see.
Used together, hints and skips can drastically reduce your compile time. Hints are more effective at in-game optimisation, it's true, but they can be used to great power in reducing compile times.