This is simply a consequence of how the grammar is written in the standard. I do not know whether this is supervision or not.
A lambda expression begins with a lambda introducer (parentheses), followed by an optional lambda declarator.
The lambda declaration contains an argument list, mutable attributes, an exception specifier, and a return type. All of this is optional, except for a list of arguments. Therefore, if a lambda declarator is present at all, there must be parentheses.
That's why you can not only have a mutable keyword.
Sebastian redl
source share