I haven't run into this problem in Julia, but making too many things iterable can make it hard to write generalized flatten. I.e. you might want to say something like "if an element is not iterable, push it onto the accumulator; otherwise, flatten it recursively." Doesn't work like you'd expect when integers are iterable. Factor had iterable integers and eventually ditched them because of problems like this.
Having an expressive way to talk about types maybe mitigates this problem a little compared to some other languages.
