I looked at the API documentation for the Stream.reduce() method; it mentioned that the operation must be associative. And the
word "associative" was a link to an explanation of why that is necessary and what the ramifications are. Did you read that? If not, do you still have questions after reading it?
Likewise with "stateless"; the word in the documentation is also a link to a section which explains further.