Should PSBT finalizers/extractors and deserialization functions enforce the rule that a taproot schnorr signature should only append a SIGHASH_* unless it is SIGHASH_DEFAULT (0), or is it left to the implementer's discretion?
This boils down to how to treat invalid signatures provided in a PSBT. I believe there is some room for implementation-defined behaviour with regard to the finalizer role. For instance if it can get around the invalid signatures by satisfying another spending path.
However the specification for the extractor role is pretty clear:
The Extractor should produce a fully valid, network serialized transaction if all inputs are complete.
Since the input finalizer and transaction extractor roles are often combined, and since explicit is better than implicit, i believe it would make sense to explicitly raise an error on an invalid signature. But nothing prescribes it in the specification itself.