That’s why I don’t like RETE – it doesn’t have backtracking.
In the end, it doesn’t matter whether you use forward-chaining or backwards-chaining; just as it doesn’t matter whether you use bottom-up or top-down execution (e.g., datalog can be implemented bottom-up, using magic sets). It’s simply a matter of efficiency and completeness.
RETE was a “nice try”; as was PLANNER; and I think their good ideas have been absorbed into things like CHR and Prolog. I suppose some people prefer procedural thinking to logical thinking (and assignment to unification), which is why RETE keeps on resurfacing (but nobody seems to revisit PLANNER, CONNIVER, etc.).