You do realize that Dart is not just a new, from-scratch language aimed at solving all of our pain points with current PLs, right? Dart is a product of it's environment, which more than Google is the current web stack and web programmers.
Dart's number one constraint is that it compiles to fast JavaScript. Dart's number two constraint is that it's familiar to JavaScript/Java/C# programmers. Dart's reason for being is to solve problems that arise when trying to write large applications in JavaScript, and to solve those issues faster than TC39 is. Being innovative compared to Java and JavaScript is further down the list.
If you know those things, then you might understand some of the design decisions:
Nulls, and optional typing? That comes out of the first constraint. "Boring" syntax, from the second. Inheritance? Familiar to Java/C# programmers, not to mention that many people mess up prototypal inheritance and many others use incompatible class systems. Not allowing user-defined implementations of num and String? Efficiency.
Also, just because some innovative features aren't there now doesn't mean they won't arrive either soon or eventually. Method cascades are being implemented so every API can be fluent like jQuery. Mirrors are being implemented for reflection. Pattern matching, mixin, and non-nullable type proposals are circulating. The server and browser APIs and libraries seem to be converging as time moves on.
Dart's a fine language for what it's aimed at. It's a huge step up from JavaScript. If you actually try it, you might very well like it compared to your other options.