I, too, think that using + for concatenation is a mistake that should not be compounded on. As others have pointed out, a concatenation-specific operator would be useful for other containers as well, esp. with extended generics. For example:
[1, 2, 3] + [4, 5, 6] -> [5, 7, 9]
[1, 2, 3] ++ [4, 5, 6] -> [1, 2, 3, 4, 5, 6]
Or with tuples:
(1, 2.0, 3) + (4, 5.0, 6) -> (5, 7.0, 9) // error if not pairwise addable
(1, 2.0, 3) ++ (4, 5.0, 6) -> (1, 2.0, 3, 4, 5.0, 6)