Why are people so scared of void*? Are there any VM's that don't resort to some form of pointer tagging when implementing dynamic typing?
I find very wise to avoid it when it is not necessary or when there is an equivalent safer alternative (e.g C++ templates if available and applicable).
In this case however, is not only completely fine but I don't think there is a better way to do it.
BTW, my favourite phrase of the article:
"“… Why do this?” Because I can, of course."
The truly spirit of a hacker :)