Это как раз то, о чём я говорил. Когда у используемой системы есть ограничения, то мозг начинает их воспринимать за что-то, что не можем. Ты хочешь мыслить в рамках возможного. И ты начинаешь мыслить, чтобы не придумывать то, что не реализуемо.
И подход С++, да и любого языка с полноценным полиморфизмом, как раз и заключается в интроспекции типов внутри полиморфного вызова и далее генерации на базе этой интроспекции чего-либо.
В связи с этим расте очень популярна кодогенерация. Т.е. запускается внешняя программа, которая генерирует нужный код.