letrec* is a new feature in r6rs which is letrec with left-to-right evaluation order. Also internal defines now follow letrec* semantics. The reasoning behind this is letrec* "Does the Right Thing" in that all names in a letrec* are bound in all clauses of the letrec*, but only the ones above you are defined to you.
(define-syntax letrec* (syntax-rules () ((LETREC* ((variable expression) ...) body0 body1 ...) (LET ((variable (UNINITIALIZED)) ...) (SET! variable expression) ... (LET () body0 body1 ...)))))