Your ELSE dilemma gets tricky because it doesn't really apply here. ELSE is a logical operator, while the conditions in the events in C2 are more than just logical conditions (they also do some "actions" like picking etc).
You could solve it I guess by limiting the ELSE to logical conditions only, like System.Compare variable / value, and disallow it if the same event contains other non-logical conditions.
Or you could "overload" ELSE to do other stuff (inverted picking, nice idea), but then it gets tricky.
One more thing, how about this one?
Event: System->Compare x = 1 / Action: System->Set value X = 0
Event: System->Else / Action: System->Set value x = 1
After this runs, what is the value of x?
(btw really looking forward to the OR...) (and to the family behavior