friedsquid, you are correct. For any two random notes there is 1/10,000,000 chance that they will match, assuming they are from different full-run prefixes. If they are from the same prefix, then your chance is zero so the actual odds are slightly worse than 1/10M.
However, if you have 10,000 random notes each note could potentially match against 9,999 other notes. That's a total of 9,999 * 10,000 / 2 = 49,995,000 different combinations when you exclude the duplicates (A=B is the same as B=A). So for a random sample of 10,000 notes you will get ~5 matches on average. Emphasis on random.
Searching bricks, you will get mostly sequential notes so this won't work on it's own. The key is you need to build up a large inventory of somewhat randomly distributed notes. 10,000 notes would be a good number and achievable with a modest amount of capital. After that you will get ~1 match for every 1000 notes you look through.
It would be a piece of cake to find 100s of matches this way. If you haven't succeeded it's because you didn't do it systematically. You need to have a system because it won't happen on it's own. I'm not sure what my lack of personal experience has to do with it. It's just simple math. I don't search bricks because it's not worth the trouble. I'm just saying if you want to find these matches you could do it with a modest amount of effort. The fact that we don't see too many of these is just because nobody has really bothered.