As explained in http://dev.opencascade.org/index.php?q=node/1091 and in #24682, motivation for removing the cache out of B-Spline was to improve performance by avoding mutex lock (which is required for ensuring thread-safe access). Although overhead was OK for x86 platforms, Istvan Csanady reported significant overhead on iOS (see http://dev.opencascade.org/index.php?q=node/1043).
To address the issue the OCC team moved out the cache to GeomAdaptor_Surface (and alike). Respectively use of plain Geom_BSplineSurface revealed performance loss (as anticipated in http://dev.opencascade.org/index.php?q=node/1091) and required updates throughout OCC, which seems to be not completed today yet and perhaps will never will (as there multiple simple curve/surface evaluations throughout OCC source base).
Moreover, user codes with 7.0 may (and likely will in most cases) slow down out-of-the-box and will require manual revision of the codes and updates, what is extra work for the users. For instance, we observed 10% to 1200% performance loss on about 1/3 of the test cases in our product and early analysis confirmed the root-cause to be changed B-Spline cache mechanism.
More efficient alternative could be to keep cache inside B-Splines but protecting with another mutex - so called spin mutex (see https://en.wikipedia.org/wiki/Spinlock). Instead of going into OS kernel (what Standard_Mutex does wrapping pthread_mutex_t on non-Windows platforms), the spin_mutex could quickly check an atomic flag and proceed or spin (if the mutex is locked). TBB offers efficient implementation in tbb::spin_mutex which OCC could use (if respective macro is defined) along with own non-TBB implementation.
Contention on B-Spline evaluation is an extremely rare case, so in most scenarios mutex overhead would be negligible (and improved comparing to 6.x version). Yet it would not require user's efforts for migration and thus would improve out-of-the-box experience.
Andrey (or other OCC folks): Has this option been considered and if yes, what were the reasons to decline it ?