Возвращаемый тип функции не void, это void * (указатель void). Указатель void - это обобщенный указатель, который может указывать на что угодно, но на него нельзя разыменовать - вы должны привести его к другому типу перед разыменованием.
Если вы не вернете пустоту *, то вы не вернете указатель на выделенную память, и код пользователя потерпит неудачу.