imko,
1. Ссылки/кнопки бывают многострочными. При инлайновом псевдо выглядеть это будет странно.
2. Флексы или гриды - хорошо, но имеют НО при наличии внутри текста какого-то тега (span, br). Чтобы гарантированно избежать этого, нужно оборачивать текст в span. <button><span>текст кнопки</span></button>
Итого получаем на чашах весов: абсолют против лишнего тега.
konst34,
1. При подключении шрифта через font-face в font-family пишется только его название.
2. А вот когда вы хотите применить его к какому-то элементу, там уже нужно указывать запасной шрифт из стандартных и/или семейство.
Не поверю, что в первых же строках гугла нет примеров.
p.s. современным браузерам лучше формат woff2, а woff для предыдущего поколения.
В вашем коде нет подключения шрифтов.
1. Шрифты подключаются с помощью правила @font-face
2. Ну а дальше нужно смотреть в консоль, правильные пути и потом по обстоятельствам.
Мое дело рассказать почему так делают. Устраивать холивар не хочу.
Аргумент про подсчет паддингов практически отвалился с появлением кастомных свойств.