Tach!
Was letztlich über die Leitung geht, ist ein String. Und selbst das ist nicht richtig, denn er kann immer noch gemäß der verschiedenen Typen des Transfer-Encodings formatiert sein.
Über die Leitung geht eine Bytesequenz die gar keine Kodierung kennt. Letzerere wird nämlich in einem Header
Content-Type: text/html; charset=utf-8
(Beispiel) übertragen.
Das ist alles eine Betrachtungsfrage, in welcher Schicht wir uns befinden. Aber eigentlich waren diese unteren Schichten bisher kein Thema, eher nur ein Ablenkungsmanöver deinerseits. Und es ist auch zur Klärung der offenen Fragen nicht weiter hilfreich.
Der Skalare Kontext ergibt sich über die gesamte Übertragungsstrecke, weil diese transparent ist. Transparenz heiß z.B.:
Sende ich einen String, bekomme ich einen String. Sende ich ein Objekt, bekomme ich ein Objekt.
Transparenz heißt: Dazwischen ist nichts.
Achja, und diese Transparenz kommt einfach so aus dem Nichts beziehungsweise "ist nichts"? Mitnichten. Das was du da als Transparenz bezeichnest und wegzudiskutieren meinst, ist konkreter Code. Um Teile dieses konkreten Codes ging es, nicht um eine von außen betrachtete Wegabstrahierung.
Siehe die von dir gesetzte Überschrift in diesem Teilthread: "FormData toString und Kontextwechsel". FormData hat kein eigenes toString(), es erbt über die Prototype-Chain das toString() von Object. Da ist also nach wie vor nichts, was irgendwie in die von dir angeschnittene Diskussionsrichtung passt.
dedlfix.