Es wird Konstruktor C aufgerufen (Kopie C1) //Richtig
Es wird fnc А von Klasse C1 aufgerufen //Richtig
Benutzer ruft fnc B von C auf:
es wird Konstruktor C noch einmal aufgerufen (noch eine neue Kopie C2) //Richtig
Es wird fnc B von Klasse C2 aufgerufen //Richtig
Es gibt eine und nur eine Instanz von C.
Konstruktor von C wird nur einmal aufgerufen.
//Falsch.
1 Aufruf = 1 Controllerinstanz + 1 Konstruktoraufruf + 1 Funktionsaufruf.
Danach ist Ruhe im Karton. Tabula Rasa. Bei einem erneuten Aufruf ist es wieder das gleiche, er weiß nichts von dem ersten Aufruf. Wenn du eine Persistenz haben willst gibt es dafür Session, DB, Dateisystem, Client etc.