Some directives may be present in AST places where they are actually inert. This may come as a surprise to the user, and should probably at least result in issuing a compilation time warning.
For example, applying //dd:span on something that is not a function node will do nothing.