does the keypool address this problem? So I would have to generate enough new addresses to get a new key pair from a new keypool not in my backup wallet?
It depends on the wallet (Bitcoin-Qt? Electrum? MultiBit?). Different wallets result in different behavior.
In the case of Bitcoin-Qt you are correct, the keypool addresses this problem, and you'd have to generate enough new addresses to get a new key pair that is not in the keypool of your backup wallet.
Keep in mind that Bitcoin-Qt uses a new address from the keypool every time you send a transaction. Therefore, you need to count not only the times you click the "New Address" button, but also how many transactions you've sent since your last backup. When the sum of both those things together exceeds 100, you will then have addresses in your wallet that are not stored in the backup.