>Isn't it reasonable to desire a language that is both backwards compatible and not very complex?
My perspective on this is a little bit different. The answer in my opinion is no.
Let us define what compelx means : If you accept a language is a system, comprised of components (features), then defining complexity is very simple. As you may know in a system, every component interacts with every other component (unless otherwise strictly said). So the moment keeping track of these interactions becomes more than what we can track easily, we call that system a complex system.
So what you are saying is basically means adding components to a system (which is in it is already a complex system because of backward compatibility with C) without introducing complexity and not becoming a complex.
That is not simply possible.
1) You can design a simple language and keep it that way by not adding features.
2) You can remove old unused features to keep the complexity level.
Basically think about complexity from graph theory perspective. Verticies are features and edges are interactions between features.