Can different ExpressionBuilders be used to generate sub expressions for a single expression?
No, doing this might seem to be working in some cases but would certainly fail in expressions using joins or complex expressions. The recommended way is to always use the same ExpressionBuilder in a single expression. If your expression contains sub-selects, then the sub-query may have a different ExpressionBuilder, but this should be the only case.