Steps to reproduce:

* Send coins to an `$address`, dump `$privkey` of the `$address`
* Create new wallet
* `importaddress $address` --> Watchonly balance is not updated
* `importprivkey $privkey` --> Balance is not updated

Needs a restart to get fixed. See also #11477 
{
    m_spk_man = p->GetScriptPubKeyMan(type, internal);
    if (!m_spk_man) {
        error = strprintf(_("Error: No %s addresses available."), FormatOutputType(type));
        return false;
    }
    if (nIndex == -1)
    {
        m_spk_man->TopUp();
        CKeyPool keypool;
        if (!m_spk_man->GetReservedDestination(type, internal, address, nIndex, keypool, error)) {
            return false;
        }
        fInternal = keypool.fInternal;
    }
    dest = address;
    return true;
}
void ReserveDestination::KeepDestination()