“There should always be one pair with a positive dot” - well, for a start, I am making one vital assumption here, that the mesh is fairly smooth and that therefore there are relatively small angles between the 3 tangent space quats in any given triangle.
Now, let’s take the pairs AB, AC, BC. We check the cos of each, and if they are all shortest path (positive cos), no problem, we leave things as they are. But sometimes we will find longest path pairs. We know that there are only 2 possibilities for each quaternion and (because we have a relatively smooth mesh) we know that there are only small angles between any pair, as long as the sense of the 2 quats match. Let’s call the sense heads or tails. Heads and heads will give shortest path. Likewise tails and tails will give shortest path. Only heads and tails in a pair will give longest path. So, we either get heads, heads, tails in a triangle with a longest path, or tails, tails, heads. And therefore we have one shortest path pair and 2 longest path pairs.
I know this isn’t a rigorous maths proof, but it gives an outline.
How many verts will need flipping? Very few indeed. It’s not really a question of probability (if our quaternions lie on a relatively smooth surface). The problem is that quats only wrap around 720 degrees, not 360. Therefore, there’s always going to be a discontinuity somewhere, but in a very specific place.
Take a cylinder and try to map the tangent space to quats. Then there is only one straight line running down the side of the cylinder where the quats don’t wrap. You only need to duplicate the verts along that line. So, unless you have a very knotty sort of shape, the proportion of extra verts is going to be very very low and the more dense your mesh, the lower the proportion.
And thanks for the welcome Dmitry!