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)
{"sighashtype", RPCArg::Type::STR,  true,  "ALL", "The signature hash type. Must be one of\n"
            "       \"ALL\"\n"
            "       \"NONE\"\n"
            "       \"SINGLE\"\n"
            "       \"ALL|ANYONECANPAY\"\n"
            "       \"NONE|ANYONECANPAY\"\n"
            "       \"SINGLE|ANYONECANPAY\""},
                }}
                .ToString() +
            "\nResult:\n"
            "{\n"
            "  \"hex\" : \"value\",                  (string) The hex-encoded raw transaction with signature(s)\n"
            "  \"complete\" : true|false,          (boolean) If the transaction has a complete set of signatures\n"
            "  \"errors\" : [                      (json array of objects) Script verification errors (if there are any)\n"
            "    {\n"
            "      \"txid\" : \"hash\",              (string) The hash of the referenced, previous transaction\n"
            "      \"vout\" : n,                   (numeric) The index of the output to spent and used as input\n"
            "      \"scriptSig\" : \"hex\",          (string) The hex-encoded signature script\n"
            "      \"sequence\" : n,               (numeric) Script sequence number\n"
            "      \"error\" : \"text\"              (string) Verification or signing error related to the input\n"
            "    }\n"
            "    ,...\n"
            "  ]\n"
            "}\n"
            "\nExamples:\n"
            + HelpExampleCli("signrawtransactionwithwallet", "\"myhex\"")
            + HelpExampleRpc("signrawtransactionwithwallet", "\"myhex\"")
        );
    RPCTypeCheck(request.params, {UniValue::VSTR, UniValue::VARR, UniValue::VSTR}, true);
    CMutableTransaction mtx;