is there punishment for leaving match
The wiki does not say that it has been removed so I assume it is still a thing.
Dishonor is a system to prevent players from joining unranked and ranked arenas after player misconduct, such as leaving or not participating (AFKing) in matches. Each instance of undesired behavior will immediately result in a timeout and increase the player’s dishonor stat. Frequent misbehaving will result in increased duration of timeouts. Dishonor is not currently active.
That is what I got from: http://wiki.guildwars2.com/wiki/Structured_PvP
Seems to be happening more lately in my experience as well. The penalty is there I think but it’s probably too small initially so people just take the small time out semi afk the next time they log in.
Actually, this may help. I just found this bit of information.
Disconnecting, relogging, or changing characters during a match does not grant dishonorable, with some exceptions
Being kicked by AFK detection automatically adds a stack
Being absent from a match when the match has ended adds a stack
I know this is an old post, but the Wiki entry says that Dishonor is not active. If this is not the case, let me know and I will go ahead edit the Wiki entry.