Nincs olyasmi, amit funkcionális nyelvekben meg lehet oldani, de C++-ban nem (és vice versa). A kérdés inkább az, hogy milyen mintázatokat "sugall" a nyelv (vagy framework).
Példa: Clojure alatt lényegében minden érték alapból immutable, ami nem, azt tranzakcionalis szemantikaval változtathatod, lock nem létezik a nyelvben (egyszerűsítek). Ennek egész brutális előnyei/hatásai vannak -- a versenyhelyzetek, adatkorrupciók kb. eltűnnek, helyettük inkább a ritkán előforduló, magas kontencio esetén létrejövő starvation, etc. a probléma. Namost ha ez szimpatikus, akkor vagy funkcionális nyelvet használsz, vagy C++-ban csinálod ugyanezt, de úgy sokkal több melót kell belefektetni.
Egyáltalán nem fekete-feher a probléma. Chat esetén (erősen párhuzamos események, információk passzolgatasa rengeteg logikai actor között) én beprobalnam a Scala/Play kombót, vagy Clojure-t, vagy az Erlangot.
----------------------
while (!sleep) sheep++;