Observe that it is still possible to edit the default value of the variable
Expectation: When creating a variable inside a blueprint, it’s default value is editable in child classes. However, when enabling Private on the variable, it should no longer be accessible.
Seems to be a blueprint quirk :(.
Your last resort is to make a c++ base class with private variables. They aren’t even exposed in the child default values. Did a test and they are truly hidden.
Though UFunctions even if private seem to be able to be called by the child.