Да в принципе нет никакой разницы. Если как img вставите то эту картинку можно будет мышкой захватить и она в верстке будет видна. Если через css в псевдоэлемент добавите то нельзя будет такую картинку мышкой перетаскивать и она коде страницы ее не будет (только в CSS).
Часто иконки вставляют через специальные шрифты с иконками (например Bootstrap Icons), но тогда символы это не картинки а глифы шрифта. Те у вас в принципе нет опции вставить символ шрифта как картинку. Шрифты удобно потому что все иконки в одном файле находятся и так как это шрифт к ним можно применять свойства css для шрифтов. Те цвет, размер и тп. С картинками прийдется или грузить каждую отдельно или создавать из них атлас и потом все равно вставлять через css чтобы выставить на картинке позицию вашей иконки – что очень не удобно.
В общем если у вас супер кастомные картинки которых мало можете вставлять их как img, Если это набор иконок в нете лучше использовать вставку через шрифт через псевжоэлемент.