What happens when the X coordinates of both objects are identical?
In the events above you test if X1 > X2 and X1 < X2, you don't test the case X1 = X2. So you can't add a Always otherwise its actions wil be executed when X1 = X2.
Unless you made a typo and you wanted to test X1 >= X2 for example (in this case, i.e. if you replace > by >=, all cases are covered and you can move the events to a Always).
Your examples work differently in the case the X coordinates are identical.
If you don't want the Attacking and Away flags to be set when the X coordinates are identical, then you have to use the first example, not the second one.
Think about child events as a separate function edited in a separate editor (the only difference is the objects that are pre-selected by the parent conditions).
It's not the problem I was talking about, though it's another one I didn't see. I was saying that if X1=X2, in your first example Attacking and Away are not set to ON, in your second example they are set to ON. Just take the possible cases (3 in this case: X1<X2, X1=X2, X1>X2) and write what conditions and actions are executed, you'll see the differences between both versions.
PS: sorry if what I say is not very clear. From a developer point of view it's quite obvious, but from a non-developer point of view it might be a bit more difficult. When you make child events you probably have to think a bit more about the logic of execution of the events, it's probably more "abstract" than the linear coding style with duplicated conditions.
I think child events aren't meant to reduce events, but are meant to reduce conditions.