Kazimir is a state machine. Variable are a way to keep track of a state at a given moment and then reuse it when appropriated.
I think that variables can be used for making generic action or order. Imagine we have an action that send a mail to the
administrator when an event occurred, a variable containing the result of the mail can be use as argument. By using this variable it
would be possible not to write a specific action for every case.
Variable are also a way to react after the modification of a situation: Imagine that you know that a bad situation will produce
a first regexp in general, but another regexp when a given event is detected. By using a variable in the pattern regexp definition
you can dynamically change the regexp form regexp1 to regexp2 when the expected event occurred.
More generically, variables can introduce more flexibility to the product, by making the configuration file more dynamic, and look
a little more like a kind of 'event checking' script than like a basic configuration file.