Hi Veli-Matti,
I've been working on Dyalog APL for a little while now, and the timings look very different in version 16.0:
D←' ' ⋄ S←12345⍴'this' 'is' 'a' 'sentence'
D{1↓↑,/,⍺,⍤0⊢⍵}S → 7.4E¯4 | 0% ⎕⎕⎕⎕⎕⎕
D{1↓↑,/,⍺(,⍤0)⍵}S → 7.4E¯4 | 0% ⎕⎕⎕⎕⎕⎕
D{1↓↑,/,⍺∘,⍤0⊢⍵}S → 4.7E¯3 | +538% ⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕
D{1↓∊⍺∘,⍤0⊢⍵}S → 4.2E¯3 | +471% ⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕
D{1↓↑,/,⍺,⍪⍵}S → 8.0E¯4 | +9% ⎕⎕⎕⎕⎕⎕⎕
D{1↓∊⍺,¨⍵}S → 1.4E¯3 | +88% ⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕
D{¯1↓↑,/,⍵,[1.1]⍺}S → 7.4E¯4 | 0% ⎕⎕⎕⎕⎕⎕
D{¯1↓∊(,[1.5]⍵),⍺}S → 5.1E¯4 | -31% ⎕⎕⎕⎕
D{¯1↓∊⍵,[1.5]⊂⍺}S → 4.5E¯4 | -39% ⎕⎕⎕⎕
D←'","'
D{(⍴⍺)↓↑,/,(⊂⍺),⍤0⊢⍵}S → 6.9E¯4 | 0% ⎕⎕⎕⎕
D{(≢⍺)↓↑,/,(⊂⍺)(,⍤0)⍵}S → 7.1E¯4 | +2% ⎕⎕⎕⎕
D{(⍴⍺)↓↑,/,⍺∘,⍤0⊢⍵}S → 6.7E¯3 | +868% ⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕
D{(⍴⍺)↓∊⍺∘,⍤0⊢⍵}S → 5.7E¯3 | +733% ⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕⎕
D{(⍴⍺)↓↑,/,(⊂⍺),⍪⍵}S → 7.5E¯4 | +9% ⎕⎕⎕⎕⎕
D{(⍴⍺)↓∊(⊂⍺),¨⍵}S → 1.4E¯3 | +97% ⎕⎕⎕⎕⎕⎕⎕⎕
D{(-⍴⍺)↓↑,/,⍵,[1.1]⊂⍺}S → 7.0E¯4 | 0% ⎕⎕⎕⎕
D{(-⍴⍺)↓∊(,[1.5]⍵),⊂⍺}S → 5.1E¯4 | -27% ⎕⎕⎕
D{(-⍴⍺)↓∊⍵,[1.5]⊂⍺}S → 4.5E¯4 | -35% ⎕⎕⎕
We've seen roughly the same speedups on all platforms.
The last expression is a slightly faster variant of the one before it, which was the fastest of the original benchmarks.
Both of those expressions actually get to take advantage of two major improvements. First is a huge speedup on enlist, which applies to every argument with small leaves. Second is some special code for catenate which interleaves arrays much more quickly. The result is pretty quick!