window の scroll イベントがうまく取れない
そもそもですが body タグをスクロールさせるっていうデザインに問題がある気がしてきました。W3C の CSS 2.2「11.1.1 Overflow: the 'overflow' property」の章を見ると、overflow に関しては body にあてたものも viewport に反映するようなことを書いてあります(CSS 3 でも変わってなさそうです)。その通りであれば body にスクロールバーは出ないはずですが、html と body タグ両方に overflow (と幅高さ) を指定している場合は、デザイナーが意図して付けたものだとブラウザが解釈しているのか、それぞれ別のスクロールバーを出してくれるようです。
自前で書いたスクリプトなら window ではなく body からイベントをとればいいのですが、ライブラリとかだと window で固定になっていたりします。コンテンツ全体のスクロールはやはり viewport (ルートタグ) にしないと色々不具合がでそうなので、他のタグで全部コンテンツを囲ってスクロールバーを出す実装は避けた方がよさそうです。