Nothing is wrong with the Event Driven programming if this is done right.
The firmware on all Embedded Controllers in company I am working for is Event Driven.
EDIT
BTW, I designed number of DIY Controllers using Hubduino + Arduino IDE. Everything is Event Driven and non-blocking.
It's not a bug, it's the same edge case we've been discussing from the start, where both the trigger and the condition are looking at the same attribute, and you expect one to be latched and not the other. IRM is just not designed to work like this and this is an edge case best dealt with a RE. It's an edge case because the general case is that the condition is looking at something different than the trigger and this WHOLE discussion becomes moot.
Unless I'm missing something, seems to me your choices are:
accept the design and use the workaround (a single RE-gated trigger, calls another rule's action if you have multiple triggers to gate and want to re-use)
learn groovy and write an app as I suggested above
I have faith in you, stranger Aren't you used to dealing with just a handful of test pins and BIST?
I get it, but it's worth a try. I've taken to write built-in tests in my apps. Create a test instance of the app, assign test virtual devices, run the test. Works pretty well.
In a past for the HW debugging I used Oscilloscopes (still using them) and Logic Analyzers. Since I switched to FPGA design Logic Analyzers is not needed anymore.
All my test SW was written in C/C++. And for the debugging I am/was using full scale JTAG Debuggers. Yes, sometime Test Points and Logs are very helpful but not a primary debugging tools. To my eyes using a forest of logs is very inefficient and drives me crazy.