AFAIK, the presence of void in the argument list is a hangover from the old days of C before function prototypes were required. An argument list with void explicitly told the C compiler not to accept arguments, while the compiler might accept anything if type prototype had no arguments (probably compiler specific).
With C++, the presence of void makes no difference. An empty argument list and a void argument list generate the same mangled signature. Absolutely no difference in execution.