Von Dependency Injection bis zu Funktionaler Programmierung (Higher-Order-Functions) gibt es manchmal sogar bessere Lösungen als virtuelle statische Methoden.
In C# gibt es nicht einmal virtuelle statische Methoden

Daher ist das erste Beispiel sowieso Schwachsinn.
Da müsste Microsoft erstmal Delphi's Klassenmethoden abgucken.