Il me semble que certains compilos interprètent les pointeurs void comme des pointeurs vers un char, mais je doute que ce soit standard.
GCC fait ça, en effet (d'où l'option -Wpointer-arith), mais ce n'est pas standard, et je ne pense pas qu'il soit prévu que ça fasse partie de C++0x...
En particulier, ça nécessite que sizeof(void) == 1 (

)