С первого взгяда может показаться нелогичным, но логика здесь есть.
Когда используется all? Когда мы проверяем, что все переменные в iterable-объекте - True (неважно, какого вида). Сформулировав по-другому, можно сказать: "all сообщает о том, что в списке все объекты не False". Т.к. Список пуст - значит в нём нет объектов, которые есть False.
С any похожая логика. "any сообщает о том, что в списке есть хотя бы один элемент True". Т.к. список пуст - значит в нём нет хотя бы одного объекта, который True.