Leider ist die Welt nicht ganz so schön. Wie breit ein generischer Typ ist, wird vom Compiler festgelegt, und zwar zur Compiletime. Das heisst, du kannst das beschriebene Verhalten nicht von ein und der selben Executable erwarten, sondern musst schon noch die Quelle mit einem jeweiligen Compiler übersetzen. Der Gewinn der daraus entstünde wäre, dass du im Code nichts anzupassen bräuchtest. (Und man müsste voraussetzen können, dass die
API auch in vollem Umfang mit "wächst".)
Die Kommunikation mit einer
API ist aber eigentlich nicht der Grund weswegen man generische Typen empfiehlt. Da geht es in der Tat eher um das schon beschriebene Alignment, und um zu durchschauen warum das genau ein Vorteil ist, ist etwas Lektüre zu CPU-Architektur bzw. Datenbussen und Pipelines nicht übel. Einfach gesagt ist man damit "netter" zur CPU, und wird durch höhere Geschwindigkeit belohnt. In den meisten Anwendungen dürfte der Unterschied vermutlich nicht gravierend auffallen, aber manchmal kommt es halt auf jeden Cycle an, den man so einfach gewinnen kann.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)