`case do` is not a usual macro?

There’s a documentation issue then because despite being in the special forms section case/2 is clearly identified as a (macro) - creating a contradiction.

I was surprised at the time because of the various “… didn’t need to be a special form, could have been just a macro” discussions that crop up from time to time - but there’s the (1.5) documentation saying that some things can apparently be both.

From that perspective some explanation may be required why the first snippet worked.

The first snipped worked because the pipe (|>) silently/implicitly supplied the first argument between case and do - of course the anonymous function invocation syntax doesn’t supply any arguments silently - all of them have to be clearly identified.