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