I'm not going to argue that there isn't, but this is the first time I hear about this. In (most?) cases we have hlsl_error() followed by yyabort. Do you mean that we need some message before aborting, or that not all cases are the same, and aborting in some places is fine. Excluding oom case.
It's kind of a new thing, yeah. Note though that we do need the abort if we're ever going to return null. The better point is that we don't need to return NULL if there are duplicate attributes.