Lo probé y funciona perfectamente para mí. Tenga en cuenta que los color
y font-size
las propiedades no tendrán ningún efecto en Chrome, ya que no hay texto se visualiza. (Firefox muestra el texto alternativo si no se puede encontrar la imagen). El uso de la propiedad de ancho, por ejemplo, muestra que funciona bien. Publicaré mi código a continuación para que lo veas.
Sin embargo, a su pregunta original, apuntar a lo que es esencialmente un campo de "texto libre" en CSS es propenso a contratiempos. Es muy fácil cambiar un atributo alt sin pensar en las repercusiones en CSS (en lugar de cambiar el nombre de una clase donde debería ser obvio).
Además, dado que ya está apuntando a una ID, solo necesita usar ese selector; una ID solo se puede usar una 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>