Subversion defines two kinds of properties: node properties (attached to a file or directory) and revision properties.
Revision properties can be changed without a commit (but require a server hook to edit after creating the revision), while revision properties are only changed via a commit.
It really depends on what you are doing, what works best. E.g. svnsync stores some revision properties on r0
to keep track of its state, while TortoiseSVN extensively uses directory properties for its state. This last variant allows different projects in the same repository to use different values.
With Subversion 1.8 retrieving properties on 'an ancestor directory' became much cheaper as we implemented an optimized (network) api for that. (Available in SharpSvn as SvnClient.InheritedPropertyList())