There are two things I don’t like about this extension to the reader. The implementation unconditionnaly throws away the location information (the “unwrap”) that could be useful if the form being read contains code. I understand that this is probably what you want when the form is treated as a literal constant, but this is not always the case.
Also, it opens the door to add custom syntax that may clash with future extensions to Gambit's lexical syntax. While it is good to have hooks to extend Gambit, it would be good if such extensions have some support from the community (in other words, do other people think this is the best way to extend the lexical syntax).
I remember SRFI 10, which is an extension to the lexical syntax with similar goals, and also the JazzScheme syntax for literal constants, i.e. {typename …}. Perhaps something like that would be better to avoid a proliferation of different syntaxes for the same thing.
Also there are interesting “bootstrapping” issues such as the need to define the type before using the extended lexical syntax. It would be nice if literal constants could be used in the same file that defines the types (i.e. no phasing problem).