> this makes it possible to have many data access/manipulation functions that work on all objects.
This is not actually true. Add proper type inference and structural typing, and it's perfectly possible to have all those generic data manipulation functions while also having strong static typing.