If run via Dynamo, the DYN saved, closed, reopened, and run again then the bindings saved into the DYN will pull the previously created objects and update them rather than create new ones. This would mean you would need a DYN for each project as bindings do not propagate across files.
The reason Dynamo Player doesn’t leverage binding is that under the hood it opens the dyn, sets the inputs, runs the dyn, does NOT save the dyn, closes the dyn, and repeats the process for each run. Because there is no save there is no way to propagate changes across the file.
Datashapes and other UI interactions is somewhat irrelevant as a result of the above - bindings will (it won’t) be saved into the project based on user behavior (not saving the dyn) or use of Dynamo Player.
This post has more info on the topic if you’re interested.