It seems that it would otherwise silently skip the rescan for pre-backup used keys that are still waiting to be generated into the keypool?

See also #11249 
}
                    }
                }
            }
        }
    }
    // Extract block timestamps for those keys
    for (const auto& entry  mapKeyFirstBlock) {
        int64_t block_time;
        CHECK_NONFATAL(chain().findBlock(entry.second->confirmed_block_hash, FoundBlock().time(block_time)));
        mapKeyBirth[entry.first] = block_time - TIMESTAMP_WINDOW; // block times can be 2h off
    }
}
/**
 * Compute smart timestamp for a transaction being added to th.
 *
 * Logic
 * -  sending a transaction, assign its timestamp to the current time.
 * -  receiving a transaction outside a block, assign its timestamp to the
 *   current time.
 * -  receiving a transaction during a rescanning process, assign all its
 *   (not already known) transactions' timestamps to the block time.
 * -  receiving a block with a future timestamp, assign all its (not already
 *   known) transactions' timestamps to the current time.
 * -  receiving a block with a past timestamp, before the most recent known
 *   transaction (that we care about), assign all its (not already known)
 *   transactions' timestamps to the same timestamp as that most-recent-known
 *   transaction.
 * -  receiving a block with a past timestamp, but after the most recent known
 *   transaction, assign all its (not already known) transactions' timestamps to