Ответ
Данные выходят попарно, объединяя элементы с одинаковыми позициями из каждого потока. Если один поток завершается раньше, оставшиеся элементы другого игнорируются.
val flow1 = flowOf(1, 2, 3)
val flow2 = flowOf("A", "B", "C", "D")
flow1.zip(flow2) { num, letter -> "$num$letter" }
.collect { println(it) }
// Вывод: 1A, 2B, 3C
// D не выводится, так как flow1 завершился