Well, that's not completely correct either.
First of all, keywords are plain text. There is no inherent structure to them.
Second, there are no less than five namespaces (part of the file header) where keywords can be stored. Windows and macOS do it differently, Bridge and Lightroom do things differently, and there is a bug in Photoshop and Bridge where keywords can become out of sync in different namespaces.
Third, its COMPLETELY up to the reading/writing app to decide how to handle keywords. So an app may or may not write both parent and child tags, and can read either or both. The delimiter(s) can optionally be specified per app.
Now, is this a hot mess? Absolutely. I'd love to see standards unified so all the namespaces are used the same and so hierarchical keywords are handled the same in different apps. We see a LOT of posts on here about keywords not behaving the way that users expect.
I will say you are correct in the conclusion that if you are always going to want flat keywords, to leave them flat from the beginning.
... View more