Thanks for putting together this overview, Josh. I especially appreciated that you covered practical use cases beyond programming, including multilingual websites, social media, and document processing.
One small distinction that might make the article even more useful is separating text encoding conversion, Unicode normalization, and Unicode character transformation.
For example, converting legacy encoded text into UTF-8 is different from applying NFC or NFKC to Unicode text. Both are also different from replacing ordinary letters with styled Unicode characters, as fancy-text generators do.
These operations can have different consequences. NFKC, for instance, can map many Mathematical Alphanumeric Symbols back to ordinary Latin letters, which may be useful for searching but can remove intentional styling.
Two related references:
Unicode Consortium — Unicode Normalization Forms: https://www.unicode.org/reports/tr15/
Styled Unicode text transformations: https://www.levenshtein.net/styled-unicode-text
Disclosure: I am affiliated with Levenshtein.net.
Perhaps a short comparison of these three operations would complement your existing examples, especially for developers deciding which type of Unicode conversion their application actually needs.