А если это должен быть массив?
Ты что-то не так понимаешь. Если задано cacheCondition, то это всегда массив. Просто если в оригинале это был класс или коллейбл то он становится вместо массива, а если в оригинале был массив, то из него просто удаляется условие. А проверка на bool|callable стоит для раннего обнаружения ошибки, чтобы если там напишут фигню по ошибке, не сработало приведение типов.