A lot of the reason for MVC is to avoid mixing business logic and data. So maybe one route to making it redundant is to have the language make more of a distinction between data objects and logic objects. Scala's case classes give you a slight nudge in this direction - after a while you become uneasy at seeing a complex function on a case class, or a non-case class with lots of data members - but it's quite subtle; maybe a future language could make it harder to do these two things.
I think there's this constant tension in language design between giving you the power to do really cool things (python) and the constraints to stop you screwing up (java). But I think that more modern languages are getting further down the funnel, combining the advantages of both.
I think there's this constant tension in language design between giving you the power to do really cool things (python) and the constraints to stop you screwing up (java). But I think that more modern languages are getting further down the funnel, combining the advantages of both.