Я сомневаюсь в логичности вывода этих функций при этом крайнем условии.

Не могли бы вы разъяснить, так как я все же подозреваю что наверное неправ в этом?

Вот переделанный пример из папки D:\L\PABCWork.NET\Samples\WhatsNew\3_7_2\

// Все виды использования Permutations, Combinations, Cartesian
##
var a := Arr(0,0,0);
Println('Sequence -> ', a);
Println;
Print('Permutations(1) -> '); a.Permutations(1).Println;
Print('Permutations(2) -> '); a.Permutations(2).Println;
Println;
Print('Permutations    -> '); a.Permutations.Println;
Print('Permutations(3) -> '); a.Permutations(3).Println;
Println;
Print('Cartesian(1) -> '); a.Cartesian(1).Println;
Print('Cartesian(2) -> '); a.Cartesian(2).Println;
Print('Cartesian(3) -> '); a.Cartesian(3).Println;
Println;
Print('Combinations(1) -> '); a.Combinations(1).Println;
Print('Combinations(2) -> '); a.Combinations(2).Println;
Print('Combinations(3) -> '); a.Combinations(3).Println;
Println ('-------------------------------------');
Println;
var s := Seq(1,3,5,7);
Println('Sequence -> ', s);
Println;
Print('Permutations(1) -> '); s.Permutations(1).Println;
Print('Permutations(2) -> '); s.Permutations(2).Println;
Print('Permutations(3) -> '); s.Permutations(3).Println;
Print('Permutations    -> '); s.Permutations.Println;
Println;
Print('Cartesian(1) -> '); s.Cartesian(1).Println;
Print('Cartesian(2) -> '); s.Cartesian(2).Println;
Print('Cartesian(3) -> '); s.Cartesian(3).Println;
Println;
Print('Combinations(1) -> '); s.Combinations(1).Println;
Print('Combinations(2) -> '); s.Combinations(2).Println;
Print('Combinations(3) -> '); s.Combinations(3).Println;

Что именно разъяснить и в чем Вы “наверное неправы” ?

Я думал что разбирающиеся в языке, посмотрев на вывод этого примера, догадаются что может удивить того кто еще плохо знает ‘Permutations’, ‘Cartesian’, ‘Combinations’. Я еще плохо знаю их, но потому что не нашел нормального объяснения, его например нет в справке (F1).

И все равно мне показалась работа этих примеров как будто неправильной.

Когда я ставлю - var a := Arr(1,2,3) - то что я получаю в выводе, видится логичным.

Когда я ставлю - var a := Arr(0,0,0) - вывод меня удивляет.

Это мало что объясняет.

Но я так понял что вы ожидали что операции будут как над множествами? Ну так преобразуйте к множеству: HSet(0,0,0) или Arr(0,0,0).ToHashSet.