And maybe they originally intended to lift those limitations - but it never happened. And AS/400 (and now IBM i) was essentially “version 2” of System/38, with incompatible changes, but changes which were modest rather than expansive (e.g. increasing maximum object name length from 8 to 10 - I wonder why they bothered with such a small increase, why not 16 or 32?)
The biggest incompatibility between S/38 and AS/400 is still in the object name syntax, but not in the maximum length – rather, in how qualified names are written. In S/38, a qualified object name is of the form OBJECT.LIBRARY, whereas AS/400 changes it to LIBRARY/OBJECT. (A "library" is essentially what other platforms call a "directory", except it doesn't just contain files, actually any kind of object; and, there is no hierarchy, libraries cannot be nested – except for the special system library QSYS, which contains every other library).
The change in the separator from . to / was necessary for S/36 compatibility - unlike S/38, S/36 allowed dots in names, so for S/36 compatibility, dot was added to the allowed characters in object names. This meant dot could no longer be used to separate the object and library in a qualified name, so slash was used instead. The reversal of the order was not strictly necessary, but was likely motivated by the fact that it is more consistent with what most other major operating systems do (MVS dataset names; paths on Unix, DOS, OS/2 and Windows; OpenVMS; among others).
Something which AS/400 (now renamed IBM i) has never provided. People who’ve never studied it in detail get led astray by the “object-oriented” marketing hype into thinking it is something like Smalltalk-it ain’t.
Imagine a form of “OO” in which all classes (“object types”) were defined by the OS vendor and end-users or third party developers lacked the power to create new classes, they could only create instances of those defined by the OS vendor. And in which there is no real notion of inheritance-except for adhoc approximations to it, such as “type” fields in certain classes. That’s what “OO” means in OS/400.