Тут фишка в том, что люди испорченные всякими сями ждут, что результатом логического выражения будет логическое значение - то есть если мы используем логический оператор между “значениями” - то результат должен быть булевый.
Нечто & Нечто должно дать True или False.
Да нифига. Синие & Белое возвращает или Синее или Белое.
А если Белое & Синее & Красное & Пурпуное
То одно из них, но не True или False