There's a piece of code (in the Emacs build system) I don't understand

In "guix/build-system/emacs.scm" on line 97 there's a call to a function called "emacs-build"

Such call is inside the body of "emacs-build" itself. As it is common in scheme, a function is calling itself (recursively)

Now, I read the SICP and the discussion about functions implementing processes that can be iterative or recursive (in both cases the function calls itself)

But I don't understand what is going on here

Why is "emacs-build" calling itself ? Is this an iterative or recursive process ?

And what value is this calculating ?

I see that the result of this calculation ("  (define builder..."  ) is passed as an argument to "build-expression->derivation" a few lines below

But I don't get what build-expression->derivation is receiving really.

Also what's with that "define*" ? Is there a manual page describing it ? I couldn't find it