You decide, based on the purpose and nature of your application, whether you apply normalization when reading user input or storing it in a database or when writing it or in general. To summarize the long topic mentioned in the comments on the question, also available in the official list archive at http://validator.w3.org/feedback.html
- The warning message comes from an experimental "HTML5 check" (which is really a letter, applying subjective rules in addition to some formal tests).
- The message is not based on any requirements in HTML5 projects, but on opinions about what might cause problems in some programs.
- The opinions originally made by HTML5 Validation cause an error message, now a warning.
Of course, it is possible, albeit unusual, to receive abnormalized data as user input. This does not depend on the normalization performed by browsers (they do not do such things, although they may possibly be in the future), but on input methods and habits. For example, input methods for the letter ü (u umlaut, or u with diaresis) tend to generate a character in precomposition form, as was normalized. People can do this as abnormal, in an unfolded form, like the letter u, followed by a combination of diaresis, but they usually have no reason for this, and most people do not even know how to do it.
If you are comparing strings in your software, they may or may not (depending on the comparison routines used) relate, for example. previously agreed ü as equal to the decomposed representation. Simple implementations see them as different because they definitely differ at a simple character level (Unicode code points).
One of the reasons for normalization at some point, at the stage of writing the last one, is that precomposed characters are usually displayed more reliably. To present a normalized ü, the program simply needs to get the glyph from the font. To represent the decomposed ü, the program must either recognize it as canonically equivalent to the normalized ü, or write the letter u with the corresponding character located above it, with due attention to the graphic properties of the glyph for u, and many programs are not executed in this.
On the other hand, in rare cases when abnormalized data is accepted as user input, the user may well have a reason for creating it. He may have the idea that normalized ü and non-normalized ü are different and should be considered as such.