Das ist nicht korrekt.
Ich habe mich halt mal früher mit der inneren Architektur befasst.
Alles ist i.W. eine Objekt. Ein Objektname besteht immer aus Typ, 2 Bytes, (Lib, File, usw.) einen Kontext (Lib), 30 Bytes und dem Namen, 30 Bytes.
Am besten sieht man es am Jobnamen, der ja 26 Stellen lang ist und als Objekt im Kontext der internen Jobliste steht. Jobs sind im SBS und der JOBQ als Objekte sichtbar und es gibt ja auch CMD's dafür.

Man kann per MI Objekte erstellen, die längere Namen als 10 Stellen haben.
Auch Groß/Klein-Schreibung ist möglich. Und man kann eben auch unsichtbare Objekte erstellen.
Es gibt z.B. USRSPC-API's für bestimmte Zwecke wie Listen aus API's füllen.
Als MI gibts da den Befehl CRTS, der eben einen vollen Namen haben darf.
Auch der Kontext darf da z.B. auch leer bleiben und man hat dann ein unsichtbares Objekt.
Per Pointer kann man sich mit eintsprechender Berechtigung durch das ganze System hangeln und in fremde Jobs und interne Strukturen reinschauen.

Aus der objektorientierten Programmierung ist die Definition so:
Ein Objekt ist eine Einheit, die spezifische Eingeschaften und spezifische Methoden hat.
Ein Objekt kann Eigenschaften und Methoden vererben.
Und genau dies tut die IBM i.

Das Basisobjekt hat den Typ, die Beschreibung und die Berechtigungen.
Alle anderen Objekttypen erben von diesem.
Usw. usf.;-).