I have used it at an agency, but it was limited because many clients just come in for 1 project, so there's no long term benefit. However, when clients come back for 2,3 or more projects you can start to get cross project insights etc.
At the time (a couple of years ago), I had to set each project to have default permissions of 'no access', then invite the clients who should have access, to prevent clients seeing each others work. However, I've had a quick look and I can't see how this would work now as I can't see a 'no access' permission, or default permissions.