I disagree. It's working perfectly fine. How would you specify that we treat the hierarchical keywords "correctly" that is different from the way that we're currently treating them?
Kirk, we could agree to disagreed, but it is
not working perfectly fine - its creating an unnecessary mess.
You could implement in full the way Adobe has chosen or better still, ignore them all together.
It's not necessary to read Adobe's hierarchical keywords, because they are designed to work with Lightroom.
Lightroom also writes flat keywords (which are the same as your IPTC keywords) and those are all that's needed.
Ignore Adobe's and the problem is solved - no mess and nothing lost. Q.E.D.