Afaik können sowohl re- als auch newcommands entweder in der Präambel oder im Body stehen. Man sollte es aber natürlich erst definieren, bevor man es verwendet.

Der Unterschied zwischen renewcommand und newcommand ist der, dass man mit renewcommand ein bestehendes Kommando neu definieren kann. Das habe ich mit \bf gemacht. Dieser Befehl existiert, sollte aber eher vermieden werden und stattdessen \bfseries verwendet werden. Da mir das aber zu lang war zum Schreiben habe ich eben \bf zu \bfseries umdefiniert.
Mit newcommand kann man ein beliebiges, nicht existentes Kommando definieren.
newcommand prüft auch, ob der Befehl vielleicht sogar bereits existiert. Das war bei mir in o.g. Beispiel der Fall, als ich erst \b für \bfseries nehmen wollte. Aber offensichtlich existiert dieser Befehl schon, auch wenn ich ihn nicht kenne. Daher habe ich \bf genommen, das kannt ich wenigstens.