In 2.42.9u, on an empty condition stack:
* 'not' is true
* 'and' is true
* 'or' is true
* 'xor' is false
*'(true) and' is true
*'(false) and' is false
*'(true) or' is true
*'(false) or' is true
*'(true) xor' is true
*'(false) xor' is true
This is inconsistent in the sense that it is not possible to assume that a boolean is generated to fill the missing operands, contrarily to what happens with the integer stack (missing operands are replaced by 0).
Since an empty stack is true, as far as gene execution is concerned, what would make the most sense would be to use 'true' as default, fill-in value. Besides, it only causes a change of behaviour in the 2 italicized cases out of 10.