addmultisigaddress creates an address respecting the setting, being unable to generate a specific type of address without also adding it to the wallet seems wrong.

I suppose in the future `addresstype` may be refactored to be wallet-specific, which would leave this non-wallet rpc call without an argument. Perhaps there should just be an optional parameter to set it.
LOCK2(cs_main, cs_wallet);
    for (const CTransactionRef& ptx : pblock->vtx) {
        SyncTransaction(ptx);
    }
}
void CWallet::BlockUntilSyncedToCurrentChain() {
    AssertLockNotHeld(cs_main);
    AssertLockNotHeld(cs_wallet);
    {
        
        
        
        
        
        LOCK(cs_main);
        const CBlockIndex* initialChainTip = chainActive.Tip();
        if (m_last_block_processed && m_last_block_processed->GetAncestor(initialChainTip->nHeight) == initialChainTip) {
            return;
        }
    }
    
    
    
    SyncWithValidationInterfaceQueue();
}
isminetype CWallet::IsMine(const CTxIn &txin) const