Thanks a lot for your answer, you pointed me in the direction I didn't think of: __thumb__! Actually, my project was compiled with Thumb switched on - which is default in XCode. On the other hand, boost libraries was built with their default compiler switches for this platform, as defined in boost.build/bjam configuration (probably, thumb off?). Anyway, now I switched off Thumb in my project settings, and everything began to move as expected!
Is your application multithreaded, or does even a simple uncontended use of boost::detail::spinlock or boost::detail::spinlock_pool fail?
My application is multithreaded, but spinlock_pool was hanging in absolutely "uncontended" places - like in regex, which I use in 1 thread only. I still don't understand why it behaved like this - afterall, if thumb-enabled code doesn't support such a spinlock, it should crash, and if it does support, it should work... But this's really less important than the practical aspect, for the moment :) .