This is a normalization form that erases any canonical differences, and produces a decomposed result.
"NFD is far superior". As long as the code is some opaque string of bytes it one uses NFD or NFC. But as soon as one wants to do something, e.g. compare text with and without length marks, or with and without accents, the job is trivial in NFD and requires largish tables in NFC. (Source)
So NFD is most often used in internal processing, such as in collation.