My counter argument would be that if objects are implemented at the language level it makes it easier for developers for the following reasons:
- there is exactly one way to do it
- objects can be transported between codebases without wrappers
- beginners know where to look and everybody can understand everybody's codebase
- the compiler can optimise them better
- generally the syntax is nicer, looking at some object implementations in lua I must say that they are hideous, very similar to object implementations in javascript before ES6