I suppose the %YAML tag could be done away with if context is always the defining factor. When there is a question then it would be up to the "protocol" to specify. That might be as simple as a file extension, e.g. `.yaml12` or part of a handshake before data transmission. Yet these approaches feel a bit haphazard, where as the directive feels reliable, albeit I'm not sure there is a parser out there that can handle both 1.1 and 1.2 documents (except is so far as they are compatible).
Perhaps directives "smell" b/c they have never really been embraced? I certainly can imagine things like a %SCHEMA directive. Another might be a digital %SIGNATURE directive. And so on. But even so, I get the same gut feeling that they're not quite right.
So, perhaps the smell is just that these directives aren't in YAML format. Could the specification be generalize such that all documents are streams, and then directives are just a preceding YAML "header" document with a `!!directives` type? Hmm.. of course that assumes the type of the directive document it known ... well the other directives wouldn't have that problem.