I'm sorry, but if short circuit evaluation is useful then it should be a requirement, and if not it should not even be an extension. I don't buy the argument that this is problematic because some languages don't support short-circuit evaluation. Just because you don't have short-circuit in some language doesn't mean that you cannot write a sieve interpreter in that language that does have short circuit characteristics. The two are largely unrelated unless you're using a direct translation approach, in which case other constraints are likely to be a lot more onerous.