Технически, Stream Reduction не предлагает делать что-либо непротиворечивое, когда вы делаете это.
Гарантии предоставляются только с ассоциативными сокращающими операциями, а ваши нет (он учитывает первый операнд и игнорирует второй.)
При тестировании вашего кода вы наблюдаете результаты.
Эти результаты ни в коем случае не удивляют, когда вы пытаетесь сделать обоснованное предположение о том, как сокращение реализовано в непараллельных потоках. Однако эти результаты никоим образом не гарантируются документацией Stream, поскольку вы не соблюдали требования.
Например, результат мог быть 1 или 2. Хотя это немного озадачивает, это все же имеет смысл, и вы тот, кто не соответствует требованиям.