A lot people like async map-reduce. If you need to perform aggregation on a lot of data, its constantly growing, and you need the results to be current, async map-reduce is great. In the best case scenario, the results are precomputed. In a worst case scenario, they are a few seconds out of date. However, you have the option of forcing an update if need be. Either way, it's a hell of lot faster than running the full aggregation every time it's requested.
Redis is great, but a) the memcached protocol is well established and b) Redis is more than a simple cache.
BSON vs. JSON, what's the point here?
A query doesn't have to hit every index node. That doesn't make any sense. In fact, it's quite the opposite. With local indexes, you would, in fact, hit every single node. With global secondary indexes, you hit the index node with the right index.
Are you talking about partial updates? If so, yes, that will be available in the next developer preview. Stay tuned.