To add an answer to part1 of the question, the reason for telling the video encoder how much data the player will buffer is so it can constrain its VBR rate-control to not underflow the player's buffer (video pauses and user sees "buffering") in complex portions of the video where it wants to spend a lot of bits.
Within the limits of the VBV buffer size, the encoder can use a really high bitrate for a few seconds, as long as the bitrate before and after is low enough for the player to catch up.
Without VBV-aware rate control, the encoder could hit the target file size, but have a bitrate higher than the target streaming bandwidth for an extended period of time.