Потому, что бывает, что нет такого кусочка. Бывает когда когда
генерируется по месту, в зависимости от конкретного типа здесь и
сейчас, с помощью ненавистного тебе метапрограммирования. И
получается масса статических функций которые на ура инлайнятся.
Если убрать шаблоны -- можно сделать в лоб, перенеся всё, что делал
компилятор в рантайм. Но и скорость работы такой реализации очень
не понравится. И хуже того её ещё тестировать теперь в рантайме на
всех возможных вариантах (теперь не скажешь, что раз скомпилировалось -- то будет работать, ибо динамическая диспетчеризация). Как спрашивается ускорить? Расписать все возможные варианты по-отдельности руками? Но их может быть огромное количество. Причём сейчас используются одни, завтра после пары коммитов потребуются уже другие! Суть в том, что код по сути генерировался из шаблона, такой какой нужен в данном случае, для данных типов данных, а теперь расписывай всё руками. И не найдёшь маленького участка, где тормоза.