Due to the nature of of how redeem scripts are used, there is never any reason for a redeem script to contain anything more than simple constant values. When an output is redeemed, the redeem script is pre-pended to the encumbrance script, and run as a single script. Consider a transaction output that is encumbered by a script that says (in pseudo code):
+ 3 == 5
This output could be redeemed by by any script that leaves a
2 on the stack after executing. That means it could be redeemed by scripts like
3 - 1 or
8 / 4. However, there is no reason for the additional calculation. Since a redeem script only need to leave
2 on the stack, we can simply use a script that just puts
2 on the stack.
This means that any redeem script that performs calculations rather than just placing constants on the stack serves no purpose, and was probably broadcast as an attempt at a denial of service. These scripts can be disallowed without having any negative effect on the utility of the Bitcoin network.
By contrast, limiting the variability of encumbrance scripts limits what the Bitcoin network can be used for. This is a topic that has been hotly debated, but in general, the community does not wish to limit Bitcoin's usefulness for future applications.