The difference is that IRC doesn't try to address these issues and just lets them happen, whereas Matrix does try and sometimes gets it wrong (more due to implementation bugs than protocol issues).
I don't think it's fair to conclude that IRC is "more reliable" on that basis - if anything, I would say that Matrix comes out on top here despite the existing implementation issues. At least it eventually gets things into the right state.