This looks misleading.  MatrixExpr has \__getitem__ method and, thus - is a python iterable.

`iterable` docstring doesn't define what's a Sympy's iterable.  Actually, it's exactly what python's one is (i.e. it does support either the sequence protocol or the iteration protocol).  The only difference is in the default exclude string.  (This looks as a convenience, but the explicit is better then implicit...)

Why do you think that MatrixExpr/IndexedBase couldn't be useful as iterables in some context?  Why you can't filter out these classes somewhere in sympy/simplify/cse_* with the exclude option?