Another feature suggestion from @lvwr:
When LTO is used, hashes may be suppressed for non-local + non-address taken functions.
This would work similarly to ibt-seal. Basically, with LTO we can tell for sure that non-address-taken globals are not indirectly called, which means we can drop the !kcfi_type metadata from them, thus making these functions invalid indirect call targets.
cc @kees