I think it helps a lot. I read about the principle (share data by communicating) 10 years ago and structure most of my multi-threaded apps using BlockingQueues or similar.
Didn't have a problem since.
It does help a lot in many instances. I've been using 0MQ for this purpose, which facilitates the style nicely. However, things like setup/teardown and configuration are still not at all easy to get right -- and not all problems are apt for this style of concurrency, and it doesn't really change much about optimization; getting the most out of the platform is difficult and takes time, CSP doesn't really make a big difference there.