Reproduced with RTL v5.0.8. 
Works
TestMethod]
public void PredicateBuilderOrder()
{
    var predicate = PredicateBuilder.Null<EmployeeEntity>();
    predicate = predicate.Or(c => c.HireDate == null);
    predicate = predicate.Or(c => c.BirthDate < DateTime.Now);
                
            
    using (var adapter = new DataAccessAdapter())
    {
        var metaData = new LinqMetaData(adapter);
        var q = metaData.Employee.Where(predicate);
        var results = q.ToList();
    }           
}
Expression in the trace log:
value(SD.LLBLGen.Pro.LinqSupportClasses.DataSource2`1[NW.LLBL.MSSQL.Adapter.v50.EntityClasses.EmployeeEntity]).Where(c => ((c.HireDate == null) OrElse (Convert(c.BirthDate) < Convert(Convert(DateTime.Now)))))
Fails
TestMethod]
public void PredicateBuilderOrder()
{
    var predicate = PredicateBuilder.Null<EmployeeEntity>();
    predicate = predicate.Or(c => c.BirthDate < DateTime.Now);  
    predicate = predicate.Or(c => c.HireDate == null);
                                
    using (var adapter = new DataAccessAdapter())
    {
        var metaData = new LinqMetaData(adapter);
        var q = metaData.Employee.Where(predicate);
        var results = q.ToList();
    }           
}
Expression in the trace log:
value(SD.LLBLGen.Pro.LinqSupportClasses.DataSource2`1[NW.LLBL.MSSQL.Adapter.v50.EntityClasses.EmployeeEntity]).Where(c => ((c.BirthDate < Convert(DateTime.Now)) OrElse (Convert(c.HireDate) == Convert(null))))
The difference and the cause of error seems to be in **Convert(null) **. We will look into it.