I carefully agree with you too @Hall_of_Famer ;
Personally, I think the lack of return types cripples PHP's OOP opportunities on a very high level. You can't adequately utilize Interfaces without a bit of concern. If I could tell my Interface, the type it should return for each method, that would give me the comfort knowing that a class that implements that interface will return an expected type. Today, that isn't the case, it could implement the parameters of the method, but return a completely different object.
My work is big on the need for interfaces (they are a big part of API design), DI can use them for further extensible opportunities too, but without return types, it makes it difficult to fully trust them.
Read-Only can "kind of" be implemented now, just create a private variable in your object and a public getter method, but having a readonly attribute would be a "nice to have".
For auto boxing/unboxing, I can see the usefulness, but at the same time, I think readability is sometimes better knowing you have to ask to do it.
Having everything be an object would be nice, though I'm not sure it is absolutely necessary. Granted the biggest limitation it has right now is you can't extend a string since it isn't an object (you'd actually have to recreate it).