It seems like it is only valid as a constant classvar and nothing else. You cannot use it for instance variables and you cannot use it outside of a class definition - this latter part is the most mysterious to me. Being able to prefix variables in code and function blocks with const would be super useful but that does not seem to be the goal.
Yes. There is no way to have an instance of the class Color without making the instance… and the only way to make the instance is to evaluate some method… and the only way to call the method to create the instance is by writing an expression for it.
The only values that are not expressions are Literals. Everything else in SC must be made by an expression.
This means that const is, practically speaking, not that useful in SC – which explains how users can go for years without ever seeing it.
Literal arrays permit const <a = #[1, 2, 3];… but, contrary to Java(Script), literal arrays are immutable (put will fail – “Attempted write to immutable object”).