¿Por qué puedo recopilar una secuencia paralela a una matriz arbitrariamente grande pero no una secuencia secuencial?

De responderesta preguntaMe encontré con una característica peculiar. El siguiente código funciona como supuse que sería (los dos primeros valores dentro de la matriz existente se anularían):

Integer[] newArray = Stream.of(7, 8)
                           .parallel()
                           .toArray(i -> new Integer[] {1, 2, 3, 4, 5, 6});

System.out.println(Arrays.toString(newArray));

Salida:

[7, 8, 3, 4, 5, 6]

Sin embargo, intentar esto con una secuencia secuencial arroja unIllegalStateException:

Integer[] newArray = Stream.of(7, 8)
                           .toArray(i -> new Integer[] {1, 2, 3, 4, 5, 6});

System.out.println(Arrays.toString(newArray));

Salida:

Exception in thread "main" java.lang.IllegalStateException: Begin size 2 is not equal to fixed size 6
    at java.base/java.util.stream.Nodes$FixedNodeBuilder.begin(Nodes.java:1222)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:550)
    at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
    at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:517)
    at test/test.Test.main(Test.java:30)

Tengo curiosidad por saber por qué la secuencia secuencial no sobrescribe elementos de la matriz como lo hace la secuencia paralela. Busqué un poco y no pude encontrar documentación al respecto, pero supongo que existe en algún lugar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta