Hello Philippe, those are really good questions, thank you for sharing!
I am not sure in what kind of database you are storing your data, so I cannot be more specific.
1. Yes, user can be provisioned to multiple workspaces simply by putting multiple entries to the source data for the users brick. The source data can be taken in form of csv on S3 or it can be a table in your source database. You would need to figure out a way to transfer your access list. It should be matter of a simple application that extracts the data from one system and puts it to other system.
2. Data duplication is certainly one way of doing this, as you mentioned. The data don’t have to be duplicated physically, you can use view or projection that will be defined as simple select from the original table. But if I understand it correctly, you are basically asking if you can load data with multiple client IDs into one workspace, correct?