First there were record, procedures and functions.
Next, with the emergence of OOP, there were objects.
Next, Borland has introduced classes in which there are additional opportunities. And to force everyone to switch to a new way of declaration, a objects was sign as deprecated.
Later, when it was necessary to merge fields and methods again, it was already inconvenient to revive objects declared as deprecated. And decided to expand records.
And, accordingly, all the new features have tried to do only for records, skipping the implementation for objects, so that they correspond to the previously established policy. And either intentionally made mistakes in the support of old objects, or rather greatly inflated random errors to convince not to use objects.
The classes concept already existed in the Clascal language for Apple's Lisa computer (the earliest object-oriented Pascal dialect), but it was abandoned by Larry Tesler after being advised by Niklaus Wirth. Later, classes were reintroduced by Borland for Delphi.
True, in terms of Class-based OOP. Clascal was a play on words, "Pascal with classes". Kind of like the supposedly original name of C++, C with classes. But, it arguably should not be ignored that many programmers and programming languages have used objects
without classes. Some examples of this are JavaScript and Lua, which are Prototype-based OOP languages, and newer languages like Go (Golang) which avoids Class-based OOP. In many cases and other languages, people often just want extensible associative arrays and the convenience of dot notation, not the baggage of Class-based OOP.
To add to the fun, there is of course C and structs, but arguments on whether or not that can even be considered OO (or can be implemented like such) can make you dizzy, often the arguments center around if having objects without methods and/or classes is really OOP. Arguments along those lines can become quite philosophical, where people believe that nouns and verbs (data and functions) should
remain separate from each other. Additionally, you can have objects without classes that are data only, inherit, and/or are encapsulated, but the implementation becomes a sticking point. There are competing views as to what exactly OO is.
Be that as it may, clearly there is a place for the "plain" object concept or a simpler implementation of OO that is not so class-centric. I think a reflection of such is why we have this interesting juggling of advanced records, objects, and classes in our language. I think people have different comfort levels and views about how deep to go or how often they need Class-based OOP. The great thing about Object Pascal/Free Pascal, is that as a hybrid language, we have
options. Arguably, OOP is done more gently and optionally in our language.