Aside from the macro expansion issue, users may really ask about a way to choose identifiers that do no necessarily have the same name as the keyword symbols.
For example, consider some procedure that constructs its result using CONS. You may later want to add some optional keyword argument called `cons', so that the user can explicitly specify the constructor used, e.g. `ipair' from SRFI 116.
In the body of that procedure, you don't want to shadow the cons binding.
Example:
(define CONS cons) ; ?!
(define/kw (map proc lst (cons))
(let ((cons (or cons CONS)))
(fold-right (lambda (x res) (cons (proc x) res)) '() lst)))
The line marked with "?!" shouldn't be made necessary.
What do you mean by "If we can find a simple way to add it to ..."? Is there a hard way?
BTW, the above is another example where keyword arguments makes a lot sense together with rest arguments:
(map proc lst1 lst2 lst3 lst4 cons: ipair)
looks perfectly sane. (The syntax is not set in stone, of course.)