Nicely written!
While I generally like streams and use them. I feel there's a case of "over use". A lot of times the code isn't less verbose. It also forces us to use objects which is sometimes slower than primitives (until we get Valhalla at least).
Also some chaining makes the code less readable. Worse, it's usually harder to debug... The specialized debugging tools are "nice" but they aren't nearly as powerful/simple as debugging a loop.
I agree that parallelStream shouldn't be in a common use case. But it probably should be mentioned in the advantages.