Why does PlayerState CopyProperties and SeamlessTravelTo only work with BlueprintReadonly Variables?

So after struggling to get my custom C++ player state to persist between level changes, I eventually discovered that variables are only copied to the new player state in CopyProperties and/or SeamlessTravelTo if the variable is marked as BlueprintReadonly. If you mark it has BlueprintReadWrite, then it fails to copy across. Is this a bug or intended behaviour?

I have the same question!