Genau das funktioniert eben nicht (immer). Der Performanceaspekt muss Bestandteil der Business requirements sein, nur dann kann man in seiner Architektur darauf Rücksicht nehmen.
Beispiel: Wir wollen Daten über einen Service an einen externen Provider verschicken. Der Service muss sich zu jedem Datenpaket noch zusätzliche Daten aus der
DB holen. Wenn ich das jetzt naiv löse (am besten noch mit tollen Businessobjekten per lazy load), kann ich mir hinterher etwaige Performanceoptimierungen abschminken. Auch ein Cache bringt nicht viel.
Allerdings würde ich innerhalb der Requirements dein Tantra berücksichtigen. Vermutlich ist das auch so gemeint.
Was die Eingangsfrage anbelangt: In seltenen Ausnahmefällen wird man schmutzigen Code schreiben müssen, der einfach nur auf Performance ausgelegt ist. Dieser Code sollte
imho dann ausgelagert und explizit als "Mittel zum Zweck" kommentiert werden. Das wird aber nur sehr selten nötig sein.
Tolle Standardlösungen wird man aber auch nicht ständig verwenden können, zumal wir hier nicht direkt von Enterpriselösungen reden, sondern eher von bisserl Code.
Allerdings: Einen optimalen Algorithmus wird es allemal geben.