You’re right about how it works today but it seems to me this is an odd choice to make. Why not enforce object types?
Could they add a strictness flag that lets objects actually be type safe and enables related functions to work out of the box? For me this stuff is a regular pain point as you end up typecasting at every call site :(