One point I feel is worth mentioning is that the argument SEXPs do not loop in the way you might think they do. For instance in this case
the game will make all ships with less than 30% hull jump out THEN make all the same ships send messages. It will not warp out the first matching ship, send a message from it THEN move onto the second match. This sort of thing has tripped up quite a few FREDders in the past, especially when using string variables to hold the value of <argument>.
If you think about it, you should see that it always ends up holding the value of the last matching item in the list regardless of how many ships match.