I think the point is "for the level of abstraction it targets". Add all those abstractions that are generally a good thing in a perfect world, and practically you shifted the language enough to be unsuited for many tasks we use it today.
(Specific support for any single downcast is trivial - just write a function for the function table, typed appropriately and implemented appropriately.)