Jedoch möchte ich nicht einen Makronamen mit Backslash übergeben, sondern nur den Namen als Text, also z.B. \erzeuge{autor}{Name}. Kriegt man das auch hin?
Du kannst \@namedef{<befehlsname>}{<definition>} verwenden, das vom LaTeX-Kernel bereitgestellt wird. Allerdings hat es ein @ im Namen, weswegen man \makeatletter und \makeatother einsetzen muss. Außerdem testet es nicht, ob ein Makro bereits definiert ist, was \newcommand ja macht. Hier wäre eine Möglichkeit, die \@ifdefinable verwendet (den Test, der auch von \newcommand durchgeführt wird):
Das etoolbox Paket stellt übrigens eine ganze Reihe zu \@namedef ähnlicher Befehle bereit (\csdef wäre das direkte Äquivalent).
\csname bla\endcsname ist nach einer Expansion gleichbedeutend mit dem Aufruf \bla mit dem Unterschied, dass \bladie Bedeutung \relax bekommt, wenn es vorher nicht definiert war. Damit kann also kein undefined control sequence Fehler passieren. \@namedef{bla} ist eine Hülle für \expandafter\def\csname bla\endcsname.