Dê uma olhada e me diga o que você acha.
O mixin cria uma imagem de fundo que atua como uma imagem responsiva com largura máxima e uma proporção intrínseca.
@mixin image-replace($width, $height, $image) {
$ratio: $height / $width * 100%;
display: block;
width: 100%;
max-width: $width;
height: 0;
padding: $ratio 0 0 0;
overflow: hidden;
background: url($image) center center no-repeat;
background-size: contain;
}
O suporte do navegador é definido pelo tamanho do plano de fundo, portanto, não há IE8 e nem Opera mini. Mas é para isso que servem os fallbacks.
Notas
Parece que isso só funciona se tiver um elemento de invólucro que se reduz à largura do elemento substituído. Pode ainda funcionar com alguns ajustes.