Ну, я нашел частичное решение:
function getLineHeight(node){
var clh=document.defaultView.getComputedStyle(node, "").getPropertyValue("line-height");
var copy;
if (clh=="normal"){
copy=node.cloneNode(false);
copy.style.padding=0+"px";
copy.style.border="none";
copy.innerHTML="x <br> x <br> x <br> x <br> x <br> x <br> x <br> x <br> x <br> x";
node.parentNode.insertBefore(copy, node);
clh=copy.offsetHeight/10;
node.parentNode.removeChild(copy);
delete copy;
}
else clh=parseFloat(clh);
return clh;
}
Для тех, кто задается вопросом, почему все эти "br" в лунке "innerHTML" offsetHeight возвращает целочисленные значения, поэтому использование узла из 10 строк и деление результата на 10 дает более точный ответ.