Фокус в оптимизации логических операций.
Если первый операнд AND имеет значение false, то результат будет false независимо от значения второго операнда. Соответственно, вычислять второй операнд смысла нет.
Аналогично, если первый операнд OR имеет значение true, то результат будет true независимо от значения второго операнда.
Если вам нужно, чтобы выполнялись обе функции, то решением, как ни странно, будет явный вызов обоих функций в теле цикла с записью результатов выполнения в переменные.