In a few keys spots, PSBT finality is checked by looking for non-empty witness data.
This complicates a couple things:
- Empty data can be valid in certain cases
- User may be passed bogus final data by a counterparty during PSBT work happening, and end up with incorrect signatures that they may not be able to check in other contexts if the UTXO doesn't exist yet in chain/mempool, timelocks, etc.
On the whole I think these heavier checks are worth it in case someone is actually assuming the signatures are correct if our API is saying so.