В контент вставляют код символа из кастомного шрифта. Код содержит иконку.
Иконка работает как буква алфавита. Т.е. без картинки, цвет меняется через color, размер через font-size ну и т.д.
А вот почему контент подставляют именно в before/after не знаю, видимо из-за каких-то особенностей обработки бразуерами.