If that's what your code was really doing, there would be something that associates the roVideoPlayer with a sprite or a z-order. But there's isn't; the only place you use m.VP is to set the destination rectangle. The video plane is always behind the graphics plane. The only reason it looks like it's in front of graphics is because it's showing through the transparent hole you've punched in the graphics plane.
An roScreen and everything that's drawn to it, either directly or via roCompositor, is drawn on the graphics plane. The sprite z-order just determines the temporal order that sprites are drawn; lower z-orders are drawn first. In fact all screen types except the video player (with the complicated exception of roGridScreen) are drawn to the graphics plane. The only reason video is ever visible is when there is transparency in the graphics plane to reveal part or all of the video plane. This is why video display works the way it does.
--Mark