Die Datei .zshrc in Deinem Home Verzeichnis konfiguriert einfach nur, wie die zshell sich verhalten soll.
Der PATH gibt an, wo die Shell überall nach einem Programm suchen soll. Wenn du also auf der Shell irgend einen Befehl eingibst ohne dabei den Pfad mit anzugeben, dann nimmt die Shell die PATH Variable und geht alle Verzeichnisse durch. In jedem Verzeichnis schaut die zshell: gibt es da das Programm, das Du ausführen möchtest. Wenn es das Programm gefunden hat, dann führt es den Befehl aus. Wenn es das Programm nicht findet, kommt die Fehlermeldung.
Die Variable JAVA_HOME ist nun lediglich ein Hinweis, denn einige Programme nutzen diesen Hinweis, um Java zu finden. Die suchen halt nicht nur nach java oder javac sondern die wollen teilweise auch auf das lib Verzeichnis zugreifen und so ...
Und natürlich steht dir die Variable auch zur Verfügung. Du kannst also in der .zshrc erst JAVA_HOME setzen um dann diese Variable im PATH zu verwenden. Wen du das dann später ändern willst, dann reicht eine Änderung aus, d.h. du musst nur JAVA_HOME anpassen und PATH ist dann automatisch angepasst.
Wichtig:
a) Das gilt erst einmal nur für die Shell und die Programme, die du aus der shell startest! Ein KDE oder Gnome oder was auch Programm, dass du über die GUI startest, bekommt davon nichts mit. (Bei windows 10 ist das anders. Da haben alle Programme, die in der User Session gestartet werden, diese Umgebungsvariablen.)
b) Die .zshrc wird nur beim start der shell gestartet. D.h. Änderungen bedürfen einem erneuten start der Shell.