It is not very common, but sometimes,
$Failed is used as a head, like
This makes it possible to have "return code" returned, rather than just a fact of failure.
Basically, when this is used, it is usually in the error-reporting fall-back rule. In some cases, one may want to not evaluate the arguments
x (e.g. if
Hold*). I don't use
$Failed in such fashion myself, but I've seen such code, and I don't find any particular reason not to use it in this way. Of course, one could also use
$Failed[Hold[x]], but arguably this is a clumsier method.