Am Mi., 17. Feb. 2021 um 11:01 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>:
> I don't think it is a good idea to try to unify things that need not
> have anything to do with each other. The standardized "#!"-directives
> affect the reader (or, rather, the textual port to which the reader is
> attached) while it parses tokens and they are related to editor format
> settings or license information as much as any other type of lexical
> syntax appearing in the source (namely not a bit).

The #! directives are not all about the reader; it varies a lot.

Your examples below are not directives in the sense of those standardized by RnRS. They just happen to be written in the same lexical syntax.

#!key #!optional #!rest are just keywords written in a way that looks
like they're directives.

#!bwp and #!eof are objects written in a way that looks like directives.

All these are incompatible with R6RS, where "#!"-prefixed identifiers must be read "as flags indicating that subsequent input contains extensions to the standard lexical or datum syntax".

In sum, there's no particular consistency about it.

At least, R6RS is consistent and we shouldn't add a standard destroying this consistency.
 
It could make sense to restrict #!<datum> to #!<identifier> or
#!(<identifier> <datum> ...), with possible future extensions.

The advantage of this suggestion is that it wouldn't clash with the RnRS reader directives.
 
> You can comment out comments of some kind. For example, ";;>" can be
> commented out through "; ;;>". My example prefix ";*" can also be
> commented out through "; ;*".

Yes, there are hacks for rendering magic comments ineffective but magic
comments are a hack to begin with since all comments are supposed to be
ignored. The Right Thing aesthetic followed by Scheme and Lisp is to
solve problems in a more principled way.

Comments are supposed to be ignored by the Scheme reader but not by external tools. In fact, Emacs does not ignore all comments.

I don't see why something like ";;>" is a hack.
 
If we write some directives in comments, we have no syntax strictly for
ignoring things.

We do. As I wrote before, just write, say, "; ;;>".
 
It's also not the case that magic comments are only for external tools.
Kawa and Gauche already parse encoding comments. This is a good example

Not necessarily a good thing.