Personally, I really like ember. I think most people would have a better experience with ember if:
(1) they avoided learning off of the master branch during the crazy api changes over the last few months
(2) avoided ember data for the time being (or ever, I have my doubts about how viable it is)
(3) they asked questions on stack. the ember core team is actually pretty snappy at answering questions.
but there is still a bit of lingering weirdness with the router that people should look out for, the things that come to mind are:
a) back button errors
b) awkwardness in the serialize/model hooks depending on whether you're navigating through the app, or trying to get to a url in a new browser window
but despite its shortcomings, I've really grown to love the organization that ember gives to my javascript code base, and how it would make my program scale as it grew in size and complexity.
Regardless, I still think it's a bit overkill. You'd be surprised to see how much of the basic ember-data functionality you can achieve just by using Ember.A and Ember.Object.
Aside from the points you've raised, here's a small conclusion I have made.
"Creating a complex web application with Views, Sub Views & Deep-linking is difficult, no matter what framework you use".
I feel comfortable with BackboneJS because there isn't too much abstraction and convention. Therefore, once you get the hang of it, you know what you are doing (not sure if it sounds right, but it feels... pure, or purer than others).
But BackboneJS does in fact make me repeat a lot - which is why there are a number of plugins and other frameworks that try to cover this (e.g. Backbone Marionette, Backbone layout manager, Backbone.Subview, Backbone.Courier).
After 'giving up' on EmberJS, I've looked at AngularJS. Their example was quite simple and made sense. But as soon as I tried to create a complex app, I got stuck.
Working with these frameworks has been quite interesting, because we are trying to somehow capture the state of the app in the URL (e.g. http://a/#b/c/1/3/2) so that if that URL was bookmarked and user directly goes there, we want the web app to be able to render all the parent + child views, grab the necessary data (sometimes making sure that the order is correct) and display them as expected.
It's all do-able in either BackboneJS, EmberJS and AngularJS, but this type of apps are complex and I'm not sure if any one of these frameworks make it "magic".