This is needed because that's the way the functions works. We loop through all the selected torrents, if at least one torrent has one of the described features (has_pause, has_start, has_preview, ...) we show a entry in the context menu. If we know that we must show all the possible context menu entries, we break the loop. That's the original behavior of the function, and the one the original author intended.