I'm all for data over code, but I'd use a Rete network so my program didn't run in O(DISTRIBUTIONS * RULES) time.
Yes data design is important, but you need to be algorithm savvy in order to know the best way to design your data structures.
Also, the performance of the algorithm in the essay would be linear to the number of rows requiring update, can you elaborate on whether the RETE alogorithm can do any better in this case.
And finally, thanks for the note on RETE, I will have to investigate that.
http://en.wikipedia.org/wiki/Rete_algorithm
My favorite reference on the subject is at the bottom of the wikipedia page: "Production Matching for Large Learning Systems - R Doorenbos"
Sadly (and strangely) many of the "Rete Engines" today do it wrong and will not give you effecient lookups.