Klammern erzeugen, wenn sie nicht als Argumentbegrenzer genutzt werden, im Normalfall eine Gruppe. Innerhalb einer Gruppe sind die meisten Anweisungen und ihre Wirkungen standardmäßig lokal, nur wenn es explizit gefordert ist, sind zum Beispiel Definitionen global, sonst werden die ursprünglichen Definitionen am Ende der Gruppe wiederhergestellt. Darum gibt das folgende Beispiel auch die Ausgabe "foo//bar//foo"
\documentclass{article}
\def\foo{foo}
\begin{document}
\foo
{\def\foo{bar}
\foo}
\foo
\end{document}
In vielen Fällen ist es nicht unbedingt schädlich, eine neue und eventuell überflüssige Gruppe zu starten {\textbf{Foo}} ist nicht viel anders als \textbf{Foo}. (Im Mathematikmodus gibt es aber sehr wohl einen Unterschied zwischen $a+b$ und $a{+}b$. Dort verwandeln Klammern ihren Inhalt in ein mathord.)
So weit so gut.
Wie Du sicher weißt, bezieht sich ein \label immer (in der Faustregel) auf den zuletzt (mit \refstepcounter) hochgezählten Counter. Wie \label und \refstepcounter genau funktionieren, steht auf Seite 262 von [d]source2e[/d] in §52.1
Cross Referencing. \refstepcounter setzt den gegebenen Zähler mit \stepcounter hoch und definiert dann den internen Befehl \@currentlabel als die aktuelle Ausgabe des soeben gesetzten Zählers, diese Zuweisung ist lokal, das Hochsetzen des Zählers jedoch ist wie jede LaTeX-Zähleroperation global. \label greift auf den aktuellen Wert von \@currentlabel zu und schreibt diesen Wert als Ausgabe für das angegeben Label in die .aux-Datei.
Mit dieser Kenntnis können wir erklären, warum die zusätzlichen Gruppenklammern in \newcommand*\Sprecher[1]{{\textbf{#1:\quad}\refstepcounter{ANr}\marginpar{\theANr}}} schädlich sind.
Wenn LaTeX
\Sprecher{Gast}\label{mittagsprecherA}\blindtext
ausführt, passiert folgendes.
\Sprecher öffnet zunächst eine Gruppe, alle Operationen, die nicht explizit global sind, sind lokal zu dieser Gruppe. Dann wird #1:\quad in Fett gedruckt. Der Zähler ANr wird (global) um eins hoch gesetzt, der Wert von \@currentlabel wird lokal(!) auf den Ausgabewert von ANr gesetzt. Die Ausgabe von \theANr wird in den Rand geschrieben. Dann endet die Gruppe und alle lokalen Zuweisungen gehen verloren. Insbesondere wird \@currentlabel auf seinen vorherigen Wert zurückgesetzt. In Deinem Minimalbeispiel ist das die 1 von der Kapitelzählung. Dann erst wird \label{mittagsprecherA} ausgeführt. Der Befehl nimmt den aktuellen Wert von \@currentlabel (die "1") und schreibt ihn als Ausgabe für das Label mittagsprecherA in die .aux-Datei. Im nächsten LaTeX-Durchlauf wird das Label durch eine 1 ersetzt.