Hello,
as far as I understand your use case, this is possible in Alfresco. Depending on some details and your available skill set, it might not be a trivial thing to do, but doable.
Content and folders in Alfresco are multi-filable - they can be contained in different places within the Repository structure. Using this, you can establish a global directory of client folders, but have the specific sub-folders (legal, finance etc.) of each client reside within the individual special sites, while linking them into the global client folder. Your global directory and specific sites would need to be readable by all staff, but within the specific sites, you can restrict the write access to the staff of that department only.
In order for this to be usable / intuitive, you need to ensure that when a client is created in the global directory, the special sub-folders are automatically created in the relevant sites and linked into the client folder. If you need to provide a similar organisational structure (all clients - client X - documents) within the site, you will have to duplicate that structure (I image it will have minimal metadata and only serve in an organisational capacity) for each site (as part of the automatic creating / linking) - no duplication of actual content should be necessary.
A small bit of Java / JavaScript development and XML configuration is required to achieve this properly (should fit into a hundred lines or less as a rough estimate).
Regards
Axel