I see so I assume you do not want to use the objects from parent directly but really use them as an editable template?
The downside of this approach could be a long term maintenance and manageability. If you let your end users somehow modify the core objects (those that are shared) you might face an issue if you later want to release new version of them - fix a bug in a metric or add new feature to the dashboard etc. If each object can be modified in child workspace, you would either overwrite the customizations with your release or your users would be stuck on whatever version they started with. Or you would need to somehow resolve conflicts for each object workspace by workspace. And the objects are used in cascade - dashboards use visualizations and visualizations use metrics (and metrics can use other metrics). So if everything can be modified, it can become quite complex to deploy a change to such system with many customized workspaces.
With read-only inherited objects, there is clear distinction and separation between core and workspace-specific custom objects and deploying a change to the core is much easier.
But it is possible to use separate workspace copies without hierarchy, if that is what you need. As Yvonne pointed out, you can use the declarative API to create a full disconnected copy of the workspace. Just note that without the hierarchy you might not be able to use the Workspace Data Filters that depend on the hierarchy.
You can also combine the approaches - i.e. use the parent workspace just for logical model, metrics and some basic visualizations (those would be read only in childs) but without any dashboards and copy the dashboard definitions with API directly into the child workspaces. That way all the dashboards would be editable in childs and you would still have (read-only) core of model, metrics and visualizations that can be upgraded easily.
To copy the dashboarda you can either use the declarative API for that or for individual dashboards also the entiry API - create individual dashboard + its filterContext.