Closure composition works as expected in a regular Groovy shell, and also in the Jenkins script console; but if I run it in a pipeline I get odd results. My assumption is that however closures work in Pipeline, the leftshift / rightshift operators aren't overloaded to perform composition, but that's just a guess and I really don't know what I'm talking about.
I think it'd be cool if it worked the same way
Example (adapted from the Groovy docs):
Pipeline output (incorrect):
Script console (correct):