There is no need to remain ABI compatible with C for them as they can't be called from C anyway (except for when it is turned into a function pointer, then extern "C" needs to remain), yet does increase the amount of work necessary to clean up the output generated by c2rust.