Почему нужно задавать в em, а не px?
Типографа из Вас не выйдет ) они задаются противоположным вопросом: «Как можно задавать текстовому элементу размеры не в типографских единицах?»
В общем, почитайте про типографские единицы измерения, в частности про кегельную, и все поймете.
Вопрос в такой постановке не имеет ответа в принципе.
Размеры бывают разными. Например — внешние и внутренние отступы.
И откуда нам знать, что там с соседними блоками?
И вот на тему, почему не надо задавать в em то, что не нужно задавать в em:
Как исправить разные отступы у Chrome (с включенным DirectWrite API)?