Enter vs F6 and message sequence
Sometimes, in S&P mode, I mix up <Enter> (send my call and proceed to the exchange field) and <F6> (<Enter> was already used to proceed to the exchange field, there is a pre-filled exchange, send my call again without logging the contact yet).
When I hit <F6> in the call field and the other station responded, I'm still in the call input field but should send the exchange now. I can use <Tab> to proceed to the exchange field and hit <Enter> now, but TLF will first send the S&P_CALL_MSG (my call again), and I have to hit <Enter> again to send the report.
The same problem exists in CQ mode (but it doesn't happen as easily by accident).
I think if <Enter> is hit in the exchange field, and there is an exchange filled in, TLF should just always send the "end of contact" message for that mode. There will always be cases where the first message was sent manually or whatever, and TLF should just continue there.
(Conversely, if the call was already sent and Tab is used to go back to the call field, the contact should still be logged when <Enter> is hit in the call field, the operator likely just corrected some typo.)
This would also make "silent" logging of contacts easier. If I made a mess and have to re-enter QSO data, it's currently not possible to log the QSO without sending a lot of CW. Hitting <Esc> doesn't work because it will erase data because the QSO is not logged yet. If the contact was logged after Tab-Enter, I could hit <Esc> immediately and to cancel the single message sent at that point.
I just found the \ key in the manual, "Log QSO without CW output", which addresses my last point. But since not everyone knows that key in the heat of the moment, the <Tab-Enter-Esc> workaround would still help.