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.
{
    
    
    
    
    
    
    LOCK(cs_wallets);
    fs::path wallet_path = fs::absolute(wallet_file, GetWalletDir());
    fs::file_type path_type = fs::symlink_status(wallet_path).type();
    if (!(path_type == fs::file_not_found || path_type == fs::directory_file ||
          (path_type == fs::symlink_file && fs::is_directory(wallet_path)) ||
          (path_type == fs::regular_file && fs::path(wallet_file).filename() == wallet_file))) {
        error_string = strprintf(
              "Invalid -wallet path '%s'. -wallet path should point to a directory where wallet.dat and "
              "database/log.?????????? files can be stored, a location where such a directory could be created, "
              "or (for backwards compatibility) the name of an existing data file in -walletdir (%s)",
              wallet_file, GetWalletDir());
        return false;
    }
    
    for (auto wallet : GetWallets()) {
        if (fs::absolute(wallet->GetName(), GetWalletDir()) == wallet_path) {
            error_string = strprintf("Error loading wallet %s. Duplicate -wallet filename specified.", wallet_file);