For what it's worth, I do not believe that optional arguments should ever be at the beginning in a scheme function call. That's one of the things that the language doesn't naturally do, and having it happen for one or a few functions creates glaring exceptions that have to be memorized. Bear