IRC's concept of requiring an active TCP connection for your session is archaic but dead simple, and the only times you have to wonder whether or not someone received your message is if they got a ping timeout shortly after, and the user list might get out of sync once in a honeymoon when there's a net-split. Nothing about IRC changes anymore, so you won't get surprised by regressions and bug fixes every month. I can see how people miss long multi-line messages and animated gifs in IRC, but I just don't. It's straight forward text communications, no bullshit.
Is that unlucky moment during Element sending/trying to send the message to the server?
In this case Element stores messages now until they are sent (since 1.7.26).
Otherwise, don't see how this could happen.
What is the difference with IRC clients showing URL/picture in terms of experience?
I've found the matrix-synapse homeserver I run to be stable. Along with Element-desktop and the Element android app it's been a great experience for me.
With both of those, you don't need to worry about history or bouncers, as history gets synched even if you power down your homeserver and back up again like I do.
And authentication comes as a by-product of matrix-synapse/Element.
I also love url and picture previews displayed directly in Element (and other clients) by way of synapse - far nicer experience than the text-only of IRC in my opinion.
I think IRC has had its day. At least with myself.