JQuery vs. ZeptoJs: почему разные значения $(document).height()?
Многое зависит от вёрстки.

Например если html задать 100% высоту и ширину, то высота будет равна высоте окна, когда как высота body будет по высоте контента.
jsfiddle.net/CMxMA/

Если и на body и на html поставить по 100%, то высота body будет равна высоте окна.
jsfiddle.net/CMxMA/1/

А если контент внутри с позиционировать, то высота body вообще будет равна 0.
jsfiddle.net/CMxMA/2/

А если ещё и 100% высоту убрать, то и высота документа будет равна 0, хотя высота окна по прежнему будет определяться верно, как и высота скрола.
jsfiddle.net/CMxMA/3/

Разница меж либами зависит от того, как глубоко они копают, и какие данные берут. Тут нельзя сказать что будет правильнее, как по мне, то высота скролла.
Сравните Zepto('body').height() и jQuery(document).outerHeight()