короче, определяюсь: в худшем случае мне придётся сделать ровно то же самое, что в фейковом ADT где худший случай - двойной диспетчер в рантаймовом полиморфизме или в Rust
(типичные последствия отказа от плюсовых basics - перегрузка это слишком опасно, так что теперь и при полных сведениях о типе диспетчера все равно пишите с by design дефектом архитектуры)