One of the great things about BOINC is, it's open-source so if you hit on a client-feature you absolutely hate, you can just take the source-code, change the relevant part and build your own client.
For the wast majority of users on the other hand, using the normal BOINC-client with the built-in safety-measures makes sence.
Ken g6 mentioned one safety-measure that was added, after some users suspended work in a project, for so continuing filling-up with more work for the same project, meaning they got more work than had any hope of ever finishing before the deadline.
Another safety-measure is, if you're already full-up with work for project X you should not get any work for project Y. But of course, it's trivial to override BOINC, since it will take you only a couple seconds to hit "suspend" on project X and hit "update" on project Y to get some work for project Y (assuming they have work available).
This ability to very easily override BOINC-client in case you wants to "micro-manage" is another of the great strength of BOINC.
GLeeM mentioned another example, wanting to run a single task for a project until this task is finished, while he can run other tasks on the other cores/GPU's. This is easy to do, I've done it many times with the very long-running CPDN-work. The clue is to force this particular task to have a very short time-to-deadline, as long as the task has run atleast a single second, it's no problem if the deadline is actually in the past. This of course means to manually set the deadline yourself, but this is another example of users is allowed to "micro-managing" BOINC.
How is the non-BOINC-clients?
Most of the ones I've used is either finished, like UD's "think"-project, or has switched to using BOINC, like SETI@home and Climateprediction.net. The only non-BOINC-client I'm still ocassionally using is the Folding@home-one...
... But for anyone commenting about BOINC-client being "restrictive" I seriously doubt going to Folding@home is a good move...