Arkadiusz Drabczyk (see the comments on my original question) actually answered my question. That answer though led me to a non-obvious conclusion so I thought I would post that here in case it was of use to someone else.
The reason __fortify_function is there is that DoLog uses __va_arg_pack which resolves to __builtin_va_arg_pack which according to the docs:
-- Built-in Function: __builtin_va_arg_pack () This built-in function represents all anonymous arguments of an inline function. It can be used only in inline functions that are always inlined, never compiled as a separate function, such as those using 'attribute ((always_inline))' or 'attribute ((gnu_inline))' extern inline functions. It must be only passed as last argument to some other function with variable arguments. This is useful for writing small wrapper inlines for variable argument functions, when using preprocessor macros is undesirable.
So __fortify_function sets up the correct attributes to use __va_arg_pack.