Likely because (; ...) is reserved syntax for NamedTuple. Generally speaking, () is for creating tuple and it isn’t a compound expression, even just writing:
julia> (c, s = cos(t), sin(t))
ERROR: syntax: invalid named tuple element "sin(t)" around REPL[6]:1
You can write: begin c, s = cos(t), sin(t); [c s; -s c] * A end
It’s just one of those arbitrary parser decisions when looser convenient syntax overlaps. ((c, s) = (cos(t), sin(t)); [c s; -s c] * A) happened to work because the extra parentheses isolated the comma from the outer parentheses, so it was no longer recognized as a plain or named tuple: