If you give the section by name,you will be hardcoding the section.But if you want to dynamically pass the section ,lets say you have two sections created and you want to show those sections dynamically basing on a property Value,then you can use by property reference.
Please note that at run time the property value should be one of the sections you created,so that the related section wil be shown.
Like you explained this particular setting is used for dynamic class referencing. The use case could be lets say we want to display details related to different data instance present in Pega and consider we want to pick properties from the current page and its heirarchy. Now this can be accompolished in two ways,
1) Create a section in all the Data- classes (or)
2) Create a single section in Data- Class and use the dynamic referencing.
Now how does it work ?
Dynamic class referencing decides the page context during run time. For ex. if the page property is of class "Data-Admin-Operator-Id", then during run time we will be able to display all the properties present in "Data-Admin-Operator-Id" class and all the properties under its class heirarchy eventhough the section is present in Data- Class. This is the flexibility we get using Dynamic Class referencing.
The section by property reference is used when you want to dynamically pick the sections by property value during run time. Consider a banking application where you want to display details for different accounts say checking, savings, current. This can be accompolished by,
1) Creating section using property circumstancing (by account type) or
2) Creating sections like AccountDetails_Checking, AccountDetails_Saving.
If we have chosen second method for some reason, then during runtime we can dynamically generate the section names based on the option chosen by the end user and display the respective section accordingly.