I prefer immutable data for most use-cases. Though, I recognize that performance continues to be an issue for its wide adoption (even with structure sharing).
A related point that continuously annoys me is the mess of sequential data structures - lists, arrays, tuples, etc.. I'd prefer an immutable default that is reasonable for almost every use-case (double-ended queue, random access, split, append, sparse arrays, etc.), such as finger-tree ropes. Then perhaps use some form of annotation to tell the compiler to specialize the representation for certain use-cases.