"Inlining" e "Duplicate Symbols" são coisas diferentes. o inline
As palavras-chave permitem explicitamente várias definições (ou seja, isenta você da regra de uma definição); portanto, a plataforma (compilador e vinculador) deve saber como lidar e desduplicar isso.
(Isso acontece o tempo todo para as funções de membro da classe que são definidas nos cabeçalhos.)
Se você só quer geração de código Para acontecer, você pode armazenar o endereço da função em algum lugar:
auto fp = my_inline;
Dessa forma, o compilador deve gerar uma definição da função, para poder fornecer um endereço. Mas mesmo se você fizer isso em todas as unidades de tradução, não receberá um erro de vinculador, pois isso será deduplicado no horário do link. O requisito de que todas as definições sejam idênticas garante que isso seja bem definido.