MSG_PVS ( Potentially Visible Set ) and MSG_PAS ( Potentially Audible Set ) is use for filtering network messages to the client. ( From the eye position ).
I.e ; if you send TE_EXPLOSION with MSG_PVS, it means the message will be sent only to clients who are potentially visible from the provided origin. MSG_PAS means it will be sent only to clients who potentially hear the sound from the provided origin. So, It should be used when we can.
MSG_INIT I don't know. MSG_PVS_R and MSG_PAS_R are the reliable version ofr MSG_PVS and MSG_PAS but actually not used ( at least HLSDK doesn't mention about it ) because it should be never reliable since they change from frame to frame. So MSG_PVS and MSG_PAS are fine.