Die Datenstruktur (Hash, array, struct...) dient dem wahlfeien Zugriff innerhalb eines Programms. Die Datei dient dem Transport außerhalb eines Programms (Dateisystem, IO, Sockets, HTTP, FTP usw.).
Dateien, Ordner und Archive bilden eine Metapher um Menschen eine anschauliche Vorstellung von persistenten, digitalen Daten zu bieten. Unter Fachleuten muss man nicht notwendigerweise an dieser Metapher festhalten, wenn es der Sache eher im Wege stünde. Es ist zum Beispiel hinderlich eine HTTP-Anfrage oder -Antwort als Datei zu betiteln, weil der Kommunikation dann ein Teil des Kontextes verloren geht. Ähnliches gilt für Sockets: Man kann Anfängern eine Socketschnittstelle als Parellele zu Dateizeigern erklären, im Gespräch mit fortgeschrittenen Entwicklern sollte man zwecks Präzision und Expressivität direkt das spezifischere Vokabluar verwenden, also das Kind beim Namen nennen.
Es ist für andere Entwickler schwer dir zu folgen, wenn du alles in Begrifflichkeiten von Dateien und Sequenzen erklärst, anstatt auf allgemein bekanntes Fachvokabluar zurück zu greifen. Und präzise bedeutet nicht unbedingt low-level. Du würdest ja auch nicht auf die Idee kommen, ein Fußballspiel auf molekularer Ebene zu moderieren: Statt "Rahn schießt! – Tooooor! Tooooor! Tooooor! Tooooor!" jubelst du nicht "Die langkettigen, ioniersten Aminosäuren reagieren mit den hydrophoben, anorganischen Plasmen! – Photosynthese! Photosynthese! Photosynthese! Photosynthese!" (der aufmerksame Biochemiker hat natürlich gemerkt, um welches Spiel es sich hier handelt).