Importing a native P2WPKH script & pubkey via `importmulti` fails:

Since the pubkey is required due to issue #14405, I tried to import a native P2WPKH script together with its pubkey. It looks like importmulti assumes legacy P2PKH?
But maybe I'm doing something wrong.

Input...
* address `bcrt1qlqx4gx4qftlfe94n48ttchsptxqwt7je7tddna`
* pubkey `027dbe32bdf80ef2312f8280bd37bf69c31322745af5ebded6294969ff19c20da3`
* scriptPubKey: `0014f80d541aa04afe9c96b3a9d6bc5e015980e5fa59`

Call: `importmulti '[{"scriptPubKey": "0014f80d541aa04afe9c96b3a9d6bc5e015980e5fa59", "pubkeys": ["027dbe32bdf80ef2312f8280bd37bf69c31322745af5ebded6294969ff19c20da3"], "timestamp": "now", "watchonly": true}]' '{"rescan": false}'`

Call fails with:
```json
[
  {
    "success": false,
    "error": {
      "code": -5,
      "message": "Consistency check failed"
    }
  }
]
```
throw JSONRPCError(RPC_INVALID_PARAMETER, "More than one key given for one single-key address");
            }
            CPubKey pubkey;
            if (keys.size()) {
                pubkey = DecodeSecret(keys[0].get_str()).GetPubKey();
            }
            if (pubKeys.size()) {
                const std::string& strPubKey = pubKeys[0].get_str();
                if (!IsHex(strPubKey)) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey must be a hex string");
                }
                std::vector<unsigned char> vData(ParseHex(pubKeys[0].get_str()));
                CPubKey pubkey_temp(vData.begin(), vData.end());
                if (pubkey.size() && pubkey_temp != pubkey) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Private key does not match public key for address");
                }
                pubkey = pubkey_temp;
            }
            if (pubkey.size() > 0) {
                if (!pubkey.IsFullyValid()) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey is not a valid public key");
                }
                
                std::vector<CTxDestination> destinations = GetAllDestinationsForKey(pubkey);
                if (std::find(destinations.begin(), destinations.end(), dest) == destinations.end()) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Key does not match address destination");
                }
                
                CScript scriptRawPubKey = GetScriptForRawPubKey(pubkey);
                if (::IsMine(*pwallet, scriptRawPubKey) == ISMINE_SPENDABLE) {