1. I see why common lisp uses the &optional delimiter and parens around each optional arg: long lists of alternating vars and defaults are hard to read.
2. I see why racket asks for both keyword name and argument name[1] when creating keyword args: otherwise you have to trade off readability within the function against readability of function calls.