Personally, I deploy models across environments only with specific logicalModel/analyticsModel APIs, I do not deploy whole workspace(s) definitions.
Permissions is one reason, another reason is e.g. to be able to change connected data sources.
Generally, with Python SDK you can do anything you want quite easily, but it requires a little of programming.
We plan to introduce a new Python SDK package related to LCM (life-cycle management). It should allow users to configure such deployments in config YAML file, no more programming will be required. More requests like this yours help to prioritize it ๐