I agree that this isn't natural for building efficient algorithms, for that there is `iterchunks`. 

My view on this is that *we* are going to be building algorithms while users just want to pull out data into a usable form.

If data descriptors are public facing then my preference is to shift the burden onto us and leave the natural thing for them.

Perhaps we could improve the comfort of using `iterchunks`?  Even a renaming to `chunks` might be helpful:

    for chunk in ddesc.chunks():
        do something with chunk