[encoding] hätte auch das in HTML5 neu eingeführte Attribut fürs 'meta'-Element heißen sollen. Aber bei den HTML5-Machern kommt zu Unwissen leider auch noch Beratungsresistenz hinzu.
Das hat damit nichts zu tun. Der Sachverhalt ist denen durchaus bekannt und es wird in der Spezifikation auch der Begriff »encoding« verwendet. Das Attribut »charset« wurde gewählt, weil bereits sämtliche Browser dieses Parsing unterstützen. Auf diese Weise lässt sich das ewig lange <meta http-equiv="Content-Type" content="text/html; charset=..."> verkürzen. Das ist der einzige Zweck davon, nicht die Einführung eines neuen Attributs mit allen verbundenen Schwierigkeiten.
<meta encoding="..."> wäre hingegen als Kodierungsdeklaration unbrauchbar, bis wirklich der letzte UA es beherrscht. Solange müsste man zusätzlich das altbekannte und robuste <meta http-equiv="Content-Type" content="text/html; charset=..."> angeben. Damit wäre nichts gewonnen, dann kann man auch gleich beim Alten bleiben. Es ist eben nicht die Philosophie von HTML5, ein völlig neues Feature auf dem Reißbrett zu erfinden für einen Zweck, für den es schon eine gute Lösung gibt, nur damit es sich in ferner Zukunft etwas kürzer schreiben lässt. So ein Feature würde sich aus guten Gründen - mangelnde Abwärtskompatibilität - nicht durchsetzen.
Mathias