Wenn die x-Koordinate für die shift Option erst berechnet werden muss und in der Rechnung Klammern vorkommen, muss diese Berechnung der x-Koordinate in geschweiften Klammern stehen. Das hat nichts mit \foreach zu tun.
Wenn man im oben stehenden Beispiel shift={({sqrt(2)},0)} durch shift={(sqrt(2),0)} ersetzen würde, dann würde man ebenfalls die Fehlermeldung ! Package pgf Error: No shape named sqrt(2 is known erhalten. Das liegt daran, dass alles zwischen der öffnenden Koordinatenklammer und der ersten schließenden runden Klammer als Nodenamen interpretiert wird, wenn darin kein Komma vorkommt.
Verwende deshalb entweder ({\x},0) als Koordinatenangabe für shift oder {{sqrt(x)}} im Argument von \foreach, da die äußere geschweifte Klammer beim Lesen des Argumentes entfernt wird.
Auch wenn Du bei der Konstruktion von Pfaden Berechnungen für die Koordinaten durchführen lässt, die Klammern enthalten, musst Du diese durch geschweifte Klammern schützen. Hier ist dazu mal noch ein Beispiel: