It is possible to compute what you are suggesting (essentially, products of the rule with itself). In fact, we have this prototype function (it's not documented, but there are some examples), which allows you to do that.
The problem, however, is that in general, you would get multiple rules as a result of such a product. Each of the rules would also be typically larger than the original, so it does not help with optimization. And yes, this is a direct consequence of computation irreducibility.