The replication of the character movement component is done using RPCs, yes, but it also has a delay timer to ensure that the RPC is not sent too often in order to prevent connection saturation. This time fluctuates based on the strength of the connection (fewer sends on a slower connection). Looks like their min time (0.0222) would put it at about 45 sends per second when the character is moving. That’s high, but accuracy for characters is important and the packets are optimized. If you had that kind of bandwidth usage for every object in your game, you would quickly saturate your connection.
I didn’t realize that the properties are only synced in a single direction (like I said, still learning the net engine for UE4), but that makes sense.
Just as a disclaimer, everything I’m saying here comes from years of making multiplayer games and are general concerns. It’s totally possible that UE4 has a bunch of magic going on in the background to streamline writing net code so that most users don’t have to think about it. I have no idea, as I’m still learning. Please correct me if anything I’m saying sounds off.