Just make sure it continues to work with zero elements:
({"a", 0, "b"}) * ",";
(1) Result: "a,b"
There's code that counts on this. It's quirky, but convenient on occasion.
I have created a patch that makes it do:
({"abc",({65,65,66}),"def"})*"x";
(1) Result: "abcxAABxdef"
To me it also seems a bit quirky that there would be an implicit cast from array(int) to string in this particular situation, when the normal approach is to cast only explicitly. But I don't really mind that much.