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"
    }
  }
]
```
{
    CPubKey vchPubKey;
    if (!pwallet->GetPubKey(keyID, vchPubKey)) {
        return;
    }
    KeyOriginInfo info;
    if (!pwallet->GetKeyOrigin(keyID, info)) {
        throw JSONRPCError(RPC_INTERNAL_ERROR, "Internal keypath is broken");
    }
    hd_keypaths.emplace(vchPubKey, std::move(info));
}
bool FillPSBT(const CWallet* pwallet, PartiallySignedTransaction& psbtx, const CTransaction* txConst, int sighash_type, bool sign, bool bip32derivs)
{
    LOCK(pwallet->cs_wallet);
    
    bool complete = true;
    for (unsigned int i = 0; i < txConst->vin.size(); ++i) {
        const CTxIn& txin = txConst->vin[i];
        PSBTInput& input = psbtx.inputs.at(i);