Yeah, I was also wondering this, like what if your card can generate hashes faster than your internet connection can check them?
Although now that I think about it, it's probably a self-contained thing, i.e. your computer does all the work without having to report to someone else for every hash. I mean, doing something like that would work if there was a central server, but obviously there isn't.
This is just a guess, but perhaps it works like so; since hashes are random and you can't make a certain output occur, your computer can be trusted not to alter it in any way since it can't alter it in any way. To prevent it from reusing old hashes that it knows would reach the limit and get a block, it could be that the input you use to try and get a correct output would have to have some string of random numbers attached to it as a salt, that would change for every block.
Come to think of it, it could just be that the salt is the block number that the computer is working on, so that no particular source would be trusted to provide a truly new salt every time.
Like I said I just came up with this using common sense and deductions, so I could be completely off, but I think this is probably it unless someone with a little more experience could share their knowledge?