Mit Dingen wie "nil" und Assertions hört sich das so an als gehe es direkt um eine
DLL.
Ja, bzw. statische Libraries (primär in C).
Wenn Geschwindigkeit dir so wichtig ist dann biete doch einfach zwei Varianten an: Eine mit Validierung, eine ohne
Das ist leider nicht so einfach bei komplexen Funktionen, bei denen die Parameter teilweise erst konditional ausgewertet werden (müssen). Ohne den Code dann praktisch zu duplizieren, ist das nicht machbar - außer man regelt das über einen Compiler-Switch global für die ganze Lib.