What spec are you reading? :-P
The spec says that const-qualified variables must be initialized with a literal value or with a uniform variable, and not an expression. In this case, b IS NOT const qualified, as it is not declared with a const qualifier.
I don't think the spec is ambiguous on this matter.
There might be other ambiguities, but your level of exclamation marks is excessive :-P