Doing the has_keytab and has_password queries for users and hosts in the *-show command has a measurable performance impact. Investigate the reasons that these are always retrieved and consider protecting them with a permission instead, providing only with --all or a new option.
Investigate the history of these to determine if they are there "because we can" or due to some other reason(s).
Changing this behavior could be considered a regression so perhaps also add a global option to always enable it to restore previous behavior.
Related performance ticket: https://pagure.io/freeipa/issue/8134
Possible solutions are also:
userpassword
krbprincipalkey
Both proposals require writing non-trivial 389-DS plugins in C -- something we'd rather avoid.