`iterable` is supposed to be those objects that you can iterate, i.e., do something like `for i in expr: ...` with. But this object (and `IndexedBase`, even though it has `__getitem__`, will not work with that, because it will iterate terms forever. 

This is not specific to cse. Pretty much every use of `iterable` in the codebase is this context (typically it's used to implement some kind of automatic vectorization). 

Maybe this should be documented better, or a better name used for the mixin and or function? I am personally fine with the change, though.