If you only do a partial checksum in UDP-lite then the failure when checksummed as a UDP packet is indeed not due to a different pseudo-header, as you state.
However, I think that it's possible for a complete UDP-lite checksum to fail when interpreted as UDP:
- The IPv4 header contains a total length field and an IP header length field.
- The UDP header contains a UDP datagram length field.
You'd generally have (with IP header length multiplied by 4 to give octets):
Computed UDP datagram length = IP total length - IP header length
and you'd expect to have the equality:
UDP datagram length field == Computed UDP datagram length
However, there's nothing that guarantees this: you could have trailing garbage after the UDP datagram but still within the IP packet. This would cause Computed UDP datagram length to be greater than UDP datagram length, thereby making the UDP and UDP-Lite checksums different.
AFAICT nothing in UDP or IP prohibits this situation, but I'm not aware (a) of any way to create it without using a raw socket, or (b) what a receiving UDP peer would do about it.