`\pgfmathsetmacro` ist in diesem Fall nicht so gut geeignet, weil es die Berechnung unmittelbar ausführt und das Ergebnis dann dem Makro zuweist (siehe dazu auch die Dokumentation in Abschnitt 89.1 der `pgf`-Anleitung).
Man könnte beispielsweise ganz ohne `pgfmath` hier auf die eingebauten Möglichkeiten von LaTeX zurückgreifen:
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
% Namen reservieren:
\newcommand*\Flaggenfaktor{0}
\newcommand*\Flaggenhoehe{\Flaggenfaktor\dimexpr 3em\relax}
\newcommand*\Flaggenbreite{\Flaggenfaktor\dimexpr 5em\relax}
\usepackage{mwe}
\begin{document}
\begin{tikzpicture}[]
\renewcommand*\Flaggenfaktor{2.75}
\node[draw, ultra thick, help lines,
regular polygon, regular polygon sides=16, minimum size=0.4\textwidth] (brd) {
\includegraphics[width=\Flaggenbreite, height=\Flaggenhoehe]{example-image}};
\node[font=\Huge\bfseries\sffamily, text=white] at (brd.center) {};
\renewcommand\Flaggenfaktor{0.75}
\foreach[count=\n] \Bundesland in {BB, BE, BW, BY, HB, HE, HH, MV, NI, NW, RP, SH, SL, SN, ST, TH}{
\node[] at (brd.side \n) {\includegraphics[width=\Flaggenbreite, height=\Flaggenhoehe]{example-image}};
}
\end{tikzpicture}
\end{document}
Hier werden die Berechnungen in `\Flaggenhoehe` und `\Flaggenbreite` erst bei der Expansion der beiden Makros ausgeführt. Damit wirken sich Änderungen in `\Flaggenfaktor` unmittelbar aus.
Wer stattdessen auf die Idee kommt, `\pgfmathparse` oder `\pgfmathqparse` in der Definition von `\Flaggenbreite` oder `\Flaggenhoehe` zu verwenden, wird Schiffbruch erleiden. Das liegt daran, dass die optionalen Argumente `width` und `height` von `\includegraphics` direkt zu einer Länge (oder einem Ausdruck, der unmittelbar als Länge interpretierbar ist) expandieren müssen. Das ist bei `\pgfmathparse` und `\pgfmathqparse` nicht der Fall, da die beiden Anweisungen u. a. mit einer Gruppe arbeiten.arbeiten. Ist man auf Berechnungen mit `\pgfmathparse`, wie sie auch `\pgfmathsetmacro` verwendet, angewiesen, so kann man sich aber natürlich eine eigene Anweisung zum Einlesen der Flaggen definieren:
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
% Namen reservieren:
\pgfmathsetmacro{\Flaggenfaktor}{0}
\pgfmathsetmacro{\Flaggenhoehe}{3}
\pgfmathsetmacro{\Flaggenbreite}{5}
% Befehl zum Einlesen der Flaggen:
\newcommand*{\includeFlagge}[2][]{%
\begingroup
\pgfmathsetmacro{\FlaggenBreite}{\Flaggenfaktor*\Flaggenbreite}%
\pgfmathsetmacro{\FlaggenHoehe}{\Flaggenfaktor*\Flaggenhoehe}%
\includegraphics[width=\FlaggenBreite em,height=\FlaggenHoehe em,#1]{#2}%
\endgroup
}
\usepackage{mwe}
\begin{document}
\begin{tikzpicture}[]
\pgfmathsetmacro{\Flaggenfaktor}{2.75}
\node[draw, ultra thick, help lines,
regular polygon, regular polygon sides=16, minimum size=0.4\textwidth] (brd) {
\includeFlagge{example-image}};
\node[font=\Huge\bfseries\sffamily, text=white] at (brd.center) {};
\pgfmathsetmacro{\Flaggenfaktor}{0.75}
\foreach[count=\n] \Bundesland in {BB, BE, BW, BY, HB, HE, HH, MV, NI, NW, RP, SH, SL, SN, ST, TH}{
\node[] at (brd.side \n) {\includeFlagge{example-image}};
}
\end{tikzpicture}
\end{document}
Die Anweisung `\includeFlagge` reicht dabei ihr optionales Argument an `\includegraphics` weiter, so dass man dieselben optionalen Argumente verwenden kann, die auch bei `\includegraphics` möglich sind.