"Trigger once" really means "this condition did not run last tick". So if it's at the end of a block of conditions, and the block becomes true, it only runs once: the first time it goes from false to true. Therefore it only makes sense to use it at the end of an event block, as the manual entry for it says:
It must be the last condition in an event.
It doesn't make sense to use it at the start of an event block. People seem to often misunderstand its purpose and how to use it and end up putting 'Trigger once' in all sorts of funny places. I guess it's quite an abstract notion.
'Repeat' is much simpler: it does what it says on the tin, and repeats the remaining conditions, actions and sub-events as many times as you tell it to.