Fair enough, I agree that it isn't the prettiest or most natural of code but it isn't any "magic" too far beyond convention. Without C++ templates this is the only way to achieve certain things - and is fairly standardized.
See va_args for an example of naked types being passed in the standard library. Really it is not much different from the fact you have to pass a format string to printf.