My thesis is that we never want incremental extensions to existing syntaxes (unless we are submitting a contribution to an obfuscated code contest). We want global and maybe local extensions (where a global extension can be seen as a local one encompassing the whole source file).
I don't think we are talking about the same thing. #lang provides a completely separate reader unrelated to any other reader, whereas I am talking about something that adds lexical syntaxes to the Scheme reader (or any other reader, in principle).
For example, when we import SRFI 160 homogeneous vectors, we would want to also make the associated lexical syntax like #s8, #s16 etc. available both for source code and for data files. Either of these could be global or per-file. I call this type "incremental" because it extends the standard syntax with new features; it does not normally redefine existing features.
It's true that given #. you don't actually need this: you can write #.(make-s8vector 1 2 3 4). However, this makes bombs more likely. It's for this reason that SRFI 10 hash-comma, which is closely related, doesn't accept arbitrary expressions in the pseudo-function position, but well-known identifiers meaningful only to it. (You can extend them at run time, but not at load time.)