The fingerprint is widely used across the bip174 psbt specification. This is done to speedup parsing for a signer such that he
can observe whether the master fingerprint for the public key for that output belongs to itself (as quoted from BIP174).
BIP32 defined the fingerprint as the first 4 bytes of the hash160 of a public key. It also says that
Note that the fingerprint of the parent only serves as a fast way to detect parent and child nodes in software, and software must be willing to deal with collisions. Internally, the full 160-bit identifier could be used.
Why was the fingerprint chosen for psbt instead of the full hash? Collisions aren't that rare for just 4 bytes of data and adding mitigations in the psbt transaction parsing for such a case seems unnecessarily complicated.
There is also the issue that if the chain code changes without the public keys changing, the fingerprint will remain the same. If this would be the case, the fingerprint would be identical between two identical public keys, but each would lead to differently derived child keys. This leaves even more work for collision detection and potentially even destroys the benefits of using the fingerprint for fast account ownership checks.