Не знаю почему, но я стараюсь extern не использовать. Во всяком случае, свой код проектирую так, чтобы extern не понадобился. В чужом коде иногда приходится добавлять extern, чтобы не переписывать слишком много.
В целом, воспринимаю его как “костыль”, прибегать к которому недостойно “нормальных пацанов”
Может @ЕвгенийП что-то скажет на эту тему…