Пока функция не инстанцирована, компилятор не заботится о том, что в ней происходит просто потому что он не имеет представления о том, что в этой функции вообще может происходить, полагаю, дело в этом. Я думаю, в этом чате много тех, кто сможет корректнее и в более точных терминах, чем я объяснить суть проблемы, но подозреваю, что в общем случае это не решаемо