the main
problem is the lack of a memory model for multi-threaded
applications at the level of the language (c or c++). fortunately this
is about to change with c++0x and probably c1x.
So in 10 years we will be able to rely on a conformant compiler being
available on all relevant platforms :)