Side note, I think you also must have concluded there are two separate characteristics going on… one is the rendering of fixed positioned elements on Webkit browsers which makes them behave as children first when it comes to repaints (unless given their own layer). The other is the fact that older mobile browser versions don’t update the scroll position when panning (Remy Sharp’s link), for which there would only be a JS workaround – keeping track of finger movement with touch events and updating positioning on the basis of that. Relevant for Android 3.0 (before that it’s hardly doable) and iOS7-.
It’s mostly theory on my side in any case, going on you saying that the fixed worked as described. I can’t actually test anything (yet) on iOS.