Eu tentei e funciona perfeitamente para mim. Observe que as propriedades color
e font-size
não terão efeito no Chrome, pois nenhum texto é exibido. (O Firefox exibe o texto alternativo se a imagem não puder ser encontrada.) O uso da propriedade width, por exemplo, mostra que ela funciona bem. Vou postar meu código abaixo para você ver.
No entanto, para sua pergunta original, segmentar o que é essencialmente um campo de "texto livre" em CSS é propenso a problemas. É muito fácil alterar um atributo alt sem pensar nas repercussões no CSS (em vez de alterar o nome de uma classe onde deveria ser óbvio).
Além disso, como você já está segmentando um ID, você só precisa usar esse seletor - um ID pode ser usado apenas uma vez por página.
<!DOCTYPE html>
<html>
<head>
<style>img#logo[alt="Site Title"] { width:200px }</style>
</head>
<body>
<img alt="Site Title" src="bullet.png" id="logo" />
</body>
</html>