Prinzipiell macht es sinn, performance-orientiert zu programmieren, denn performance ist auch ein Feature.
Anders ausgedrückt führt effizienter Code auch zu weniger Energieverbrauch, was neben einem guten Gewissen auch durchaus reale Aspekte haben kann, da viele Branchen mittlerweile auch für IT-Systeme Enegrieziele haben.
Ich mach nun ~20 Jahre C# und trotzdem kenne ich nicht jeden Kniff, um das Maximum rauszuholen; aber Architektur- und Umsetzungsentscheidungen im Alltag haben durchaus relevant zur Effizient, weshalb ich zB auch
GitHub - BenjaminAbt/SustainableCode: Sustainable Code Samples and Patterns by BEN ABT erstellt habe und dort sammle.
Dennoch: Effizienz basiert extremst auf Erfahrung und Wissen, wie das Zeug unter der Haube funktioniert; sowohl beim Compiler für C# wie auch nachher bei .NET als Runtime.
Es macht in meinen Augen absolut keinen Sinn, wenn Du jetzt ohne konkreten Anlass Mikrooptimierungen durchführst.
Mikrooptimierungen sind bei Hot-Path Elementen sinnvoll, und bei Leuten, die extrem weit verbreitete Bibliotheken entwickeln.
Aber das tun 99,99% der Entwickler nicht.
Gerade als Anfänger: mach Dich mit Standard-Pattern vertraut, kümmert Dich um eine gute Architektur (ja, Ansichtssache).
Aber kümmer Dich um Optimierung dann, wenn Du es brauchst und auch ein Effekt dadurch hast.
Der Vergleich mit Bilddateien ist hier auch eher unpassend; ist ein anderer Use Case.