Можно ли вставить svg используя :after?
Конечно. Используйте для этого свойство content..some-element::after {
    content: url('data:image/svg+xml; base64, <тут_закодированный_svg>');
    /* или */
    content: url("data:image/svg+xml; utf8, <тут_код_svg>");
}
P.S. в CSS3 для псевдо-элементов необходимо использовать два двоеточия ::before, ::after, вместо одного.
Да можно, я опадал.
Но скажу одно, есть один минус, посмотрите в разных браузерах.
Отображаются они по разному (иногда, в старых браузерах особенно в опере) ie до 9 вообще не поддерживает, так что надо определять поддержку а после выставлять соответствующий класс.
Если не поддерживается, то ссылка на png/