We're using SproutCore 1.6 and TemplateViews for a medium size app, and in many ways, it feels like the early days of any framework- there are a lot of nice features, but you have to be willing to dig into framework code and bend it to your will. SC 1.x has a lot of really great ideas, but they're buried deep in a huge system that is, in many ways, inflexible.
SC 2.0 seeks to change this, by making the framework much more modular (think Rails 3) and trying to do less. KVC/KVO really pay off on larger apps by allowing the data to drive the app instead of you having to write a lot of boilerplate code to push data and UI elements around as changes are made to the data. Statecharts are really useful for giving structure to a complex client-side codebase- I highly recommend using them.
I have only looked at Backbone briefly, so I can't comment on how it compares on a real app. But my gut is that it boils down to this: with Backbone you will be writing more framework-level and boilerplate code, which may seem more explicit, but will also be harder to maintain. With SproutCore, you will be relying on the framework to do more, but you will have to understand the framework in order to take advantage of what it offers you. And since SC 2 is still under heavy development, you should be OK with adapting to change as the framework matures.
Has the documentation situation improved much in the last year? I tinkered around with it a few times and it really felt close to being great. But... aside from the 2 or 3 intro tutorials, I found the docs really lacking. I only made actual progress by reading the framework code.
You will probably still have to look at the API docs (and read some source) from time to time, but the core team is taking documentation a lot more seriously now.