I can only speak for the one I work on, but the main issue occurs with high water. When the flow increases enough, the force of the water along with various debris washing up can push the weir beneath the surface allowing fish to pass over it. Most of the time you can prevent this by ensuring debris doesn't pile up, but with enough flow there's nothing you can do. Perhaps this isn't an issue at sites where the velocity is never high, unfortunately we don't have this luxury on our system.

So of course they're selective, but in my experience they can become inoperable for weeks at a time.