TeX stammt noch aus den 70er-Jahren des vorherigen Jahrhunderts. Damals hat ein Zeichen in der Eingabe genau ein Byte. Damit war es aber nicht möglich, alle Zeichen aus allen Sprachen zu codieren. Auf unterschiedlichen Computersystemen für unterschiedliche Sprachen wurden daher *Code-Pages* erfunden. Je nach System und Spracheinstellung war dabei demselben Byte ein jeweils passendes Zeichen zugeordnet. Schwierig, wenn man Dateien zwischen unterschiedlichen Systemen oder Sprachen austauschen wollte. Donald Knuth hat sich daher für die Eingabe von Sonderzeichen etwas besonderes ausgedacht: Befehle. Für die kleinen deutschen Umlaute lauten diese beispielsweise `\"a`, `\"o`, `\"ü`.
Nun will aber niemand auf Dauer immer »`Herr M\"uller m\"ochte die \"ublichen Zeichen f\"ur Umlaute.`« schreiben (obwohl das damals sogar in E-Mails recht beliebt war, bei denen nämlich dasselbe Problem existierte). Daher haben die LaTeX-Entwickler das Paket `inputenc` geschrieben, mit dem man den Eingabezeichen eine Bedeutung zuordnen konnte, indem man die Code-Page angab. Vorteil war, dass man bei Angabe der korrekten Option für `inputenc` (siehe: [Wie überprüfe ich die Standardeingabekodierung in meinem Editor?](https://texwelt.de/fragen/2656/wie-uberprufe-ich-die-standardeingabekodierung-in-meinem-editor)) einfach »`Herr Müller möchte die üblichen Zeichen für Umlaute.`« schreiben kann. Nachteil war, dass beim Wechsel auf ein System oder Editor mit einer anderen Codierung zwar das Ergebnis des LaTeX-Laufs korrekt blieb, die Anzeige im Editor aber nicht mehr stimmte. Immerhin hatte man durch die Option von `inputenc` einen Hinweis, wie man die Datei umcodieren musste, um sie erneut korrekt angezeigt zu bekommen und weiterverarbeiten zu können.
In den 1990ern wurde daher Unicode und die zugehörigen Codierungen UTF-8 und UTF-16 immer beliebter. Die Theorie hinter Unicode ist, allen Zeichen aller Sprachen und einige einigen weiteren Zeichen wie Emoticons oder mathematischen Zeichen, eine feste Nummer zuzuordnen, ohne sich dabei auf die 256 mögliche Nummern eines einzelnen Bytes zu beschränken. UTF-8 war dann eine Codierung, bei der die bisherigen Zeichen von US-ASCII (diese Codierung enthält je 26 lateinische Groß- und Kleinbuchstaben, 10 arabische Ziffern und diverse Satzzeichen) mit den Nummern 32–127 mit einem einzigen Byte codiert werden konnten. Darüber hinaus werden mehrere Bytes für ein Zeichen benötigt. Die Idee dabei ist, dass so mit einem UTF-8-fähigen Editor ein Text immer korrekt angezeigt und weiterverarbeitet werden kann. Die LaTeX-Entwickler haben den Nutzen früh erkannt und `inputenc` entsprechend um Option `UTF8` `utf8` erweitert. Auch die Entwickler der LaTeX-Editoren haben nachgezogen. Heute verwendet praktisch jeder LaTeX-Editor UTF-8 als Voreinstellung.
Dennoch blieb aus Kompatibilitätsgründen die Voreinstellung von LaTeX zunächst bei US-ASCII. Gleichzeitig gab es aber mit XeTeX bzw. XeLaTeX und LuaTeX bzw. LuaLaTeX auch bereits erste Engines TeX-Engines und darauf basierende LaTeX-Implementierungen mit der Voreinstellung UTF-8. LuaLaTeX war damals gar nicht in der Lage mit Dokumenten, die `inputenc` verwendeten verwendeten, umzugehen. Generell wurde empfohlen, Dateien für LuaLaTeX oder XeLaTeX in UTF-8 zu codieren und kein `inputenc` zu laden.
Zum Zwecke der Vereinheitlichung wurde daher die Voreinstellung für LaTeX auch bei Verwendung von PDFTeX, also für PDFLaTeX, mit LaTeX 2018-04-01 von US-ASCII in UTF-8 geändert. Seither ist die Zeile
\usepackage[utf8]{inputenc}
auch für die Verwendung von PDFLaTeX nicht mehr notwendig. Insbesondere, wenn Dokumente sowohl mit PDFLaTeX als auch LuaLaTeX oder XeLaTeX verarbeitet werden können sollen, wie das bei kleinen Beispielen häufiger der Fall ist, ist es sinnvoll, auf die Zeile auch wirklich zu verzichten. Wenn man sicher ist, dass PDFLaTeX verwendet wird, stört sie aber auch nicht. Wenn man nicht weiß, ob das Dokument möglicherweise auf einer stark veralteten TeX-Installation weiterverarbeitet werden soll, das Dokument aber für PDFLaTeX gedacht ist, kann die Zeile sogar noch nützlich sein.
Die UTF-8-Unterstützung für PDFLaTeX in LaTeX 2018-04-01 war übrigens noch sehr unvollständig. So wurde UTF-8 in jener Version beispielsweise noch nicht im `\label`-Argument unterstützt. Daher wird von der Verwendung von Umlauten in `\label` meist noch immer abgeraten. Tatsächlich funktioniert dies mit einem aktuellen LaTeX aber bereits problemlos. Die Austauschbarkeit von Dokumentteilen zwischen den einzelnen Engines wird daher immer besser.
Fazit: Bei Verwendung eines aktuellen LaTeX ist `\usepackage[utf8]{inputenc}` nicht notwendig und teilweise sogar störend.störend. Sie stellt jedoch auf absehbare Zeit bei Verwendung von PDFLaTeX auch keinen Fehler dar.