What RuleController are you using with your Rule? The
SequentialFixpointRuleController is meant to run rules until there are
no more changes to the plan.
Sometimes specific Rewrite Rules disable themselves by adding a flag in
the context to not rerun them.
For example, look at lines 156 thru 161 in InlineVariablesRule.
You will have to check what exactly is happening in your case to prevent
the reexecution of rules.
Vinayak