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.
{
    }
    ~CWallet()
    {
        delete encrypted_batch;
        encrypted_batch = nullptr;
    }
    std::map<uint256, CWalletTx> mapWallet;
    std::list<CAccountingEntry> laccentries;
    typedef std::pair<CWalletTx*, CAccountingEntry*> TxPair;
    typedef std::multimap<int64_t, TxPair > TxItems;
    TxItems wtxOrdered;
    int64_t nOrderPosNext = 0;
    uint64_t nAccountingEntryNumber = 0;
    std::map<uint256, int> mapRequestCount;
    std::map<CTxDestination, CAddressBookData> mapAddressBook;
    std::set<COutPoint> setLockedCoins;
    const CWalletTx* GetWalletTx(const uint256& hash) const;
    
    bool CanSupportFeature(enum WalletFeature wf) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) { AssertLockHeld(cs_wallet); return nWalletMaxVersion >= wf; }