I'm sorry, Svart, but you're out of your technical depth here. I've had hands-on experience optimizing MPEG and AC-3 codecs down to the assembly language level for well over ten years. It is simply incorrect to claim that P-frames "do NOT contain any visual information". Given adequate bitrate, a P-frame can encode just as much image detail as an I-frame. The reason P-frames are usually smaller than I-frames is because they encode only as much data as is needed to reconstruct the frame. That is what we mean by the term "compression".Again, the P frames ONLY CONTAIN movement vectors, they do NOT contain any visual information like an I frame. You are correct that a P frame can be referenced back to the preceding frame, because it was predicted from that frame.
The changes aren't "compressed" at all. That is fact. during large movement, you have lots of changes and therefor larger bitrate spikes(as you know) and then when there is little movement, there is little to be stored in the P frame and very little bitrate change(as you also know). I think you may be confusing "compression" with "size" in this case.