The Arel builders work well but because SOQL is not SQL conformant, certain queries don't work
For example:
SELECT Id from Account WHERE 1=0 AND SomeField=true
Although this is a valid SQL query, SOQL cannot parse this correctly. One reason why QueryBuilder injects 1=0 is when an empty enumerable is given as argument. To solve this we should validate empty enumerable during AST build.