The CF protection prevents the attacker from jumping to arbitrary places in the code by inserting the ENDBR64/ENDBR32 to the "labels" where the intended jumps destinations are. When the whole binary (including assembler sources) have this, at runtime the CET protection can be enabled and jumps to the unexpected places abort the program. More information can be found here or on the links to the intel presentation:
https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
I see there is some support for this on 32b MPI assembler in mpi/i386/mpih-add1.S, but not elsewhere so this is RFE/RFC if this is something that was considered to implement for libgcrypt. My understanding is that the changes should be mostly mechanical changes.