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
...)))))