Just to continue the discussion for the sake of discussion. When I’m faced with a situation similar to what you describe my approach is to merge rule1 and rule2 into a single rule, add some logic to determine which logic is appropriate, implement funct1 in the rule and if it is still necessary call func2 from there.
Usually when I have a situation where I had separate rules like this that do the same thing it is because the Rules DSL does not have a straightforward way to determine which Item generated the event that triggered the rule. However, with persistence and Groups you can determine which Item caused the event under most circumstances (see the first two lines of the Override Lights rule on this posting):
However, I’ve found that in many circumstances I can adjust the code such that I don’t even have to know or care which Item triggered the rule and still merge the rules.