Hola /I-:
Para empezar...
width = ancho... height = alto (o anchura y altura/horizontal/vertical)
Sobre los porcentajes, es cierto que es para adaptarse a los contenedores, y si es el "body", se adaptaría a clientWidth y clientHeight... creo que es un parámetro "poco fiel".
La verdad es que nunca he probado usar un valor como "pixeles o puntos" y el otro como porcentajes... es cuestión de hacer pruebas...
... (te lo propongo como ejercicio y nos des los resultados)
Alguna de las cosas que he probado trataré de explicártelas...
Si sólo pones un valor (altura o anchura), el otro se adapta automáticamente... o sea si tienes una imagen de 100 x 100 y a la etiqueta img le das el atributo width a 200(anchura)... la altura se pone a 200 (y no quiero decir que hayas usado el atributo height, o que si consultas el valor del atributo, te devuelva algo...)
Otra cosa es que si la misma imagen 100 x 100 la metes en un contenedor (digamos div) de otras dimensiones (por ejemplo 200 x 50), y pones los atributos a 100% (height y width) la imagen se deforma tomando las dimensiones del contenedor.
En estos foros hemos desarrollado una página con cosas curiosas sobre el tema (en base a una pregunta mia) que puedes ver en
este enlace .
Si en esta página pinchas en cualquier botón del menú izquierdo y haces doble click en las imagenes que aparecen en la capa que se llama escaparate, aparece la imagen en tamaño real, y con un tirador (o manejador) puedes deformarla...
Te estoy contestando en base a esa experiencia, y he comprobado que funciona de la misma manera en los tres browsers con los que he hecho pruebas.
... Espero haberte orientado.
Saludos