Yes, I think you'll need descending=true to get the most recent results. This is a reasonable way to get the 1000 most recent results, in terms of efficiency (it just lops off the 1000 right most (or left most) nodes from the big B tree that makes up this view). 

It might be nice to pass the limit as an argument to interaction_data/last, perhaps with 1000 as a default if that works well.

FWIW, you can test with:
curl -X GET 'http://127.0.0.1:5984/bid_kpi/_design/data/_view/all?descending=true&limit=2'
vs
curl -X GET 'http://127.0.0.1:5984/bid_kpi/_design/data/_view/all?limit=2'

fetchRange is just passing options to the "all" view.

This would be a useful api, +1