Not 100% sure, but I think when you bridge a large set of edges, it has to guess which edge to connect with which, and sometimes it guesses wrong. If you bridge a single pair, then it can use that as a reference for the remainder of the bridging. In the inner workings, it's probably more due to something like how it sets up arrays containing edge nodes.