On master, reported on IRC, appveyor and travis (macos):

Example backtrace:

```
wallet_multiwallet.py --usecli failed, Duration: 56 s
stdout:
2018-12-10T19:52:57.293000Z TestFramework (INFO): Initializing test directory C:\Users\appveyor\AppData\Local\Temp\1\test_runner_20181210_194416\wallet_multiwallet_70
2018-12-10T19:53:18.569000Z TestFramework (INFO): Do not allow -zapwallettxes with multiwallet
2018-12-10T19:53:19.332000Z TestFramework (INFO): Do not allow -salvagewallet with multiwallet
2018-12-10T19:53:19.839000Z TestFramework (INFO): Do not allow -upgradewallet with multiwallet
2018-12-10T19:53:32.857000Z TestFramework (INFO): Check for per-wallet settxfee call
2018-12-10T19:53:33.296000Z TestFramework (INFO): Test dynamic wallet loading
2018-12-10T19:53:36.907000Z TestFramework (INFO): Load first wallet
2018-12-10T19:53:37.476000Z TestFramework (INFO): Load second wallet
2018-12-10T19:53:38.049000Z TestFramework (INFO): Load remaining wallets
2018-12-10T19:53:41.485000Z TestFramework (INFO): Test dynamic wallet creation.
2018-12-10T19:53:43.012000Z TestFramework (INFO): Test dynamic wallet unloading
2018-12-10T19:53:47.773000Z TestFramework (INFO): Test wallet backup
2018-12-10T19:53:52.517000Z TestFramework (ERROR): JSONRPC error
Traceback (most recent call last):
  File "C:\projects\bitcoin\test\functional\test_framework\test_framework.py", line 173, in main
    self.run_test()
  File "C:\projects\bitcoin/test/functional/wallet_multiwallet.py", line 315, in run_test
    self.nodes[0].loadwallet(wallet_name)
  File "C:\projects\bitcoin\test\functional\test_framework\test_node.py", line 400, in __call__
    return self.cli.send_cli(self.command, *args, **kwargs)
  File "C:\projects\bitcoin\test\functional\test_framework\test_node.py", line 453, in send_cli
    raise JSONRPCException(dict(code=int(code), message=message))
test_framework.authproxy.JSONRPCException: Wallet file verification failed: Error loading wallet w2. Duplicate -wallet filename specified. (-4)
pwallet->BlockUntilSyncedToCurrentChain();
    auto locked_chain = pwallet->chain().lock();
    LOCK(pwallet->cs_wallet);
    UniValue obj(UniValue::VOBJ);
    size_t kpExternalSize = pwallet->KeypoolCountExternalKeys();
    obj.pushKV("walletname", pwallet->GetName());
    obj.pushKV("walletversion", pwallet->GetVersion());
    obj.pushKV("balance",       ValueFromAmount(pwallet->GetBalance()));
    obj.pushKV("unconfirmed_balance", ValueFromAmount(pwallet->GetUnconfirmedBalance()));
    obj.pushKV("immature_balance",    ValueFromAmount(pwallet->GetImmatureBalance()));
    obj.pushKV("txcount",       (int)pwallet->mapWallet.size());
    obj.pushKV("keypoololdest", pwallet->GetOldestKeyPoolTime());
    obj.pushKV("keypoolsize", (int64_t)kpExternalSize);
    CKeyID seed_id = pwallet->GetHDChain().seed_id;
    if (!seed_id.IsNull() && pwallet->CanSupportFeature(FEATURE_HD_SPLIT)) {
        obj.pushKV("keypoolsize_hd_internal",   (int64_t)(pwallet->GetKeyPoolSize() - kpExternalSize));
    }
    if (pwallet->IsCrypted()) {
        obj.pushKV("unlocked_until", pwallet->nRelockTime);
    }
    obj.pushKV("paytxfee", ValueFromAmount(pwallet->m_pay_tx_fee.GetFeePerK()));
    if (!seed_id.IsNull()) {
        obj.pushKV("hdseedid", seed_id.GetHex());
        obj.pushKV("hdmasterkeyid", seed_id.GetHex());
    }
    obj.pushKV("private_keys_enabled", !pwallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS));
    return obj;
}
static UniValue listwalletdir(const JSONRPCRequest& request)