So, in other words, you want Triggers "A" and "B" to only fire once? But once Trigger "C" fires you need to basically reload Trigger "A" so that it doesn't register a fired any more?
Other than that, due to the ad hoc nature of the fired() Condition you wouldn't be able to make a reference to the second Trigger in the first one. Because when the first Trigger is initialized it won't recognize the label of the second one.
Also, the second Trigger is referencing itself - it might fail on the same principle as the first one.
If something like what you propose was to work I might have to rewrite the whole code for Trigger binding, I'm afraid. I'm not sure if I have the time for all the testing and debugging involved. Stuff like move the initialized Trigger objects into a dictionary from the current list setup. That should fix the indexing once-and-for-all - as long as two Triggers don't have the same label.