... For long races the numbers get really big. There are ways around this; it just hasn't been a priority...
(I'm sure Mike knows about this, but for DIYers...)
One way around it is to set up a Markov process. This method is simple enough that anyone who can run a spreadsheet can do it. Here is a general explanation:
https://en.wikipedia.org/wiki/Markov_process
For the particular case of pool matches governed by a single per-game probability, you want an (N+1)-by-(N+1) grid where N is the race length. The entry in each cell is the probability that the cell (score for the two players) will be visited. The upper-left cell (0-0) is 100%. The probabilities for every other cell (score) can be calculated from just the two probabilities to the left and above. To find the total match probabilities, just add up all the cells where player A has N games. As a check on your arithmetic, if you do the same for B, their sum should be 100%.
Here is what the grid would look like for two equal players in a race to 4:
The Markov method is a little more complicated to set up than the direct calculation but it allows you to include a lot of other factors if you have the info. For example, if you know that having the break in a game improves Shane's odds in a single game from 54% to 61%, and he has a 55% chance of winning the lag and it is winner-breaks, you can include all that without much more effort. The hard part is to collect the data that gives you the odds for all those added conditions. Maybe more interesting is that you could calculate how much difference there is between winner-breaks and alternate-breaks for a range of percentages.
The Markov grid also allows you see immediately the chances of various things happening. For example, the match above has a 31.25% chance of going hill-hill (3-3). I bet that would be more likely with alternate-breaks and less likely with winner-breaks.