EngFunc_MessageBegin is not unnecessary if you work with float and you use MSG_PVS/MSG_PAS. But it's true except that,
message_begin() should be used.
Btw :
MSG_PVS = Potentially Visible Set = The message will be sent only to player who potentially view the provided origin.
MSG_PAS = Potentially Audible Set = The message will be sent only to player who potentially hear the sound from the provided origin.
It's useful to reduce data sent to a client.
MSG_PVS_R and MSG_PAS_R are not used. I think there is a thread about that.