>> К сожалению, знать положение скрола мало — нет информации об общей высоте окна.
Так а вроде как window.innerHeight как раз и говорит о высоте окна. Так что имея координаты положения элемента в документе, положение скроллингов и высоту окна вполне уже можно определить видим объект или нет.