In Unity (5.4.1). Are Commands, ClientRpcs and SyncVar calls/events guaranteed to arrive? Or are they fire and forget (like UDP protocol)?
All High Level API calls are guaranteed to arrive (With exceptions where clearly specified on the documentation). in UNet, there is an Unreliable channel and a Reliable channel.
Unity builds its own custom transport protocol ontop of the UDP protocol. Unity also allow you access the transport layer through Low Level API calls
Low Level API : https://docs.unity3d.com/Manual/UNetUsingTransport.html
High Level API : https://docs.unity3d.com/Manual/UNetUsingHLAPI.html
Example of Unreliable messages : https://docs.unity3d.com/ScriptReference/Networking.NetworkClient.SendUnreliable.html