PochemuIKak, svg - это как раз так и не костыль. его можно воспринимать как более гибкая альтернатива div. работать в css с svg ты можешь также как и с div (вешать различные эвенты, менять цвета, использовать анимацию и пр.). но при этом в отличии от div ты можешь для svg задать любой вид
htmlbook.ru/css/border-image
Картинку с бордером можно нарисовать хоть в svg, но если png - в этом случае разумно будет примерно соответствовать средним размерам кнопок, чтобы при разных размерах не бросались в глаза артефакты при увеличении картинки