I think it's actually just left over from back when nodes updated cluster state via retries directly to zk rather than going through the overseer. I think that protected all reads and sets of the state? I'm not sure, I'd have to spend some more time on it. Someone else was involved in a lot of that refactoring, so I don't have a complete memory of it. Not positive if it was even need for the reads then, but who knows what all the code look like at the time.
I can't see how we need it for reading the aliases though - but we do want that volatile of course.