Since Bare descriptors are encoded as just the inner miniscript with no explicit bare() wrapper, Bare descriptors over a PkH miniscript fragment and Pkh descriptors are both encoded as "pkh(KEY)", which always decodes back to a Pkh descriptor.
This isn't terrible because both are semantically equivalent, refer to the same scriptPubKey and can be satisfied using the same assets, but it is surprising and unexpected if you treat descriptor strings as a stable serialization format.
It seems that this conflict is inherent due to the reuse of pkh() for miniscripts/descriptors and the lack of an explicit bare() wrapper so I don’t really have a concrete suggestion, just thought it was worth bringing up.