How are shift+enter newlines "totally against the grain of the system design"? Most every chat system I'm aware of supports this and displays it in a sane way. If people are misusing the system, training/instruction is in order.
It may seem like a little thing, but you have to be very careful while typing not to accidentally press Enter. I've found this to be surprisingly difficult, and it makes typing a lot more stressful.
This exact problem led to my current behavior that I now use in all email apps: I delete/never fill in the "to" fields leaving that for last. Can't accidentally send an email to nowhere...
Entirely unrelated to the Slack discussion, but I wonder if that could be a positive pattern for a mail client: only allowing you to define the recipients when you have written out the full message.
Also, when replying to a long mail thread, showing you the previous list of recipients and requiring you to select those that you want to include in your next mail. Could limit CC sprawl quite a bit.
In the case of Gmail (and most email systems really) I always start out by putting my own address in the To: field. That way if I accidentally send it will just come back to me. It can also be useful because I can first send the email to myself to double check the way it will look on the receiving end before sending it to the actual recipient.
The trick I use if I'm writing anything more than one paragraph is to write it first in my #mike personal channel (easy to get to with Ctrl+K or Cmd+K), and then copy and paste it to the channel it's intended for.
This way I don't have to worry about hitting Enter at the wrong time. I can also preview the message so I see exactly how it will be formatted, and no one has to see the "mike is typing" messages while I edit.
I also went to the extreme of creating a private Slack team just for myself. I was using the personal channel trick and found that if I included an image in my talking-to-myself message, and then pasted it to another channel, it didn't automatically display the image in that channel. I guess Slack figured the image had already been displayed somewhere within the team even though it wasn't in a public or private channel. I have a feeling this has been fixed by now.