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"
    }
  }
]
```
if (pwallet->HaveKey(keyid)) {
                    pwallet->WalletLogPrintf("Skipping import of %s (key already present)\n", EncodeDestination(keyid));
                    continue;
                }
                int64_t nTime = DecodeDumpTime(vstr[1]);
                std::string strLabel;
                bool fLabel = true;
                for (unsigned int nStr = 2; nStr < vstr.size(); nStr++) {
                    if (vstr[nStr].front() == '#')
                        break;
                    if (vstr[nStr] == "change=1")
                        fLabel = false;
                    if (vstr[nStr] == "reserve=1")
                        fLabel = false;
                    if (vstr[nStr].substr(0,6) == "label=") {
                        strLabel = DecodeDumpString(vstr[nStr].substr(6));
                        fLabel = true;
                    }
                }
                pwallet->WalletLogPrintf("Importing %s...\n", EncodeDestination(keyid));
                if (!pwallet->AddKeyPubKey(key, pubkey)) {
                    fGood = false;
                    continue;
                }
                pwallet->mapKeyMetadata[keyid].nCreateTime = nTime;
                if (fLabel)
                    pwallet->SetAddressBook(keyid, strLabel, "receive");
                nTimeBegin = std::min(nTimeBegin, nTime);
            } else if(IsHex(vstr[0])) {
               std::vector<unsigned char> vData(ParseHex(vstr[0]));