>>8,9 Actually it is. Writing your own utility headers is the hip new thing(/sarcasm).
void.h was just a bunch of experimental code and macros that were used to quickly write some programs. I never expected to maintain it forever, it was purely pragmatic affair to increase productivity. The key insight from void.h is that you can create neat zero-cost abstractions with macros and _Generic.
Something like print(arg1,...) is extremely elegant way to call printf N times with each argument being processed to get its format type:
print(arg1,...) => printf(typeformat(arg1),arg1 ); printf(typeformat(arg2),arg2 );...N times (with amount of arguments deciding the amount of calls(by arg counter macro)
While in plain C you need to specify each type format in the format string and make sure its valid(correct # of args, spacing,etc)