Surely if the data doesn't make it into the port, the data isn't sent and the connection is fine.

On a return value of false, you'll need to schedule another attempt to re-transmit this data/frame - and it can't use the existing `reconnect(tcp_bad(State))` mechanism as the connection is probably still good.