En void* a, ase declara como un puntero no a un voidtipo sino a "cualquier" tipo (caso especial). Se asigna una dirección (posición en la memoria) a, como a cualquier otra variable que se declare, por supuesto.
Después de eso, &ase evalúa la expresión para inicializar la variable (también a, pero esto no es relevante) recién declarada. El tipo de &aes "puntero a puntero a cualquier tipo", que es un caso especial de "puntero a cualquier tipo", totalmente compatible con el tipo de a. Ergo, no hay mensaje del compilador.
Corolario: no lo use void*si desea una verificación de tipo sólida. Todo se puede convertir en él. Todo lo contrario en sentido inverso, excepto por void*sí mismo (sería una excepción innecesaria que un tipo fuera incompatible consigo mismo).
Además, AFAIR, esto realmente proviene de C.