Say I do something and score some points. I want to record with persistence, using PlayerData, that I changed my score.
I write PlayerData.SetInt(Score, 100)
This sends off a serialization event containing my PlayerData with the "Score" value set to 100, to the server. There is nothing in this function call that I can do besides that: indicate that value I want to change, and what I want to change it to.
The server, upon receiving this information, then broadcasts my PlayerData to all other players. There is no way for me, the original player that sent the score update, to determine who will or will not get this data.
You, as a remote player, receive a network update with my PlayerData. You can use the OnPlayerDataUpdated() event to react to getting my data, but no matter if you have this event anywhere, and no matter what you write in this event, you DID receive a network update with my information.
And my assertion is that I believe this to not be a very good design choice, as it leads to lots of extra data being sent over the network when it might not need to be in most cases.