I'm I the only who is annoyed by the introduction of Xemacsisms and
i would put it different: there are some quite useful functions (like set-keymap-parents) that happen to be available in xemacs but not in gnu emacs. therefore they are optionally defined to avoid redefining them when running under xemacs.
i could have added it as slime-set-keymap-parents which would have been even worse, imho.
as of defun*: i think that keyword args make the code much more readable than using optional parameters, especially when there are several optional args.