Сколько кода обычно повторно используется в одном приложении?
ИМО нет "типичного" приложения, особенно не в этом отношении. Приложения имеют совершенно разные архитектуры и потоки выполнения, что приводит к различным шаблонам «повторного использования».
Рассмотрим приложение пакетной обработки данных, которое считывает данные из файла в определенном формате, преобразует их в другой формат и затем сохраняет. Он практически имеет единственный путь выполнения, поэтому не много методов вызывается из более чем одного места.
OTOH рассмотрим структуру плагинов с несколькими независимыми плагинами, которые используют один и тот же уровень инфраструктуры, поэтому функции в этом уровне вызываются из разных мест.
Вы не можете сказать, что дизайн первого приложения хуже, чем у второго приложения (не вдаваясь в детали конкретного случая).
Обратите внимание, что метрика во втором случае хитрая: если вы измеряете только саму базовую платформу без плагинов, вы получаете низкое количество повторного использования, но с реальными плагинами количество повторного использования выше. Поскольку плагины могут быть разработаны извне, у вас может даже не быть к ним доступа, поэтому ваш показатель будет искажен.
Что приводит к другому моменту: повторное использование может происходить на многих уровнях. Вы можете повторно использовать код в приложении или между приложениями. Последнее можно измерить только с учетом всех рассматриваемых приложений.
Я думаю, что лучшим подходом к этому может быть начало с другого конца и поиск дублированного кода (например, с использованием таких инструментов, как PMD для кода Java). Если у вас большие куски дублированного кода во многих местах, вам необходимо провести рефакторинг.