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 
}
        } else {
            // Labels fo
            if (data.watchonly_) {
                LOCK(data.watchonly_->cs_);
                // Add to th
                stdstring label = addr_pair.second.GetLabel();
                stdstring purpose = addr_pair.second.purpose;
                if (!purpose.empty()) {
                    data.watchonly_->m_address_book[addr_pair.first].purpose = purpose;
                }
                if (!addr_pair.second.IsChange()) {
                    data.watchonly_->m_address_book[addr_pair.first].SetLabel(label);
                }
                continue;
            }
            if (data.solvable_) {
                LOCK(data.solvable_->cs_);
                // Add to th
                stdstring label = addr_pair.second.GetLabel();
                stdstring purpose = addr_pair.second.purpose;
                if (!purpose.empty()) {
                    data.solvable_->m_address_book[addr_pair.first].purpose = purpose;
                }
                if (!addr_pair.second.IsChange()) {
                    data.solvable_->m_address_book[addr_pair.first].SetLabel(label);
                }
                continue;
            }
        }