You are correct that C++11 required changes to certain implementation details of libstdc++. However, you are incorrect about this making the new implementation incompatible with old code compiled against older libstdc++ versions; this is explicitly and intentially supported via a dual ABI--the "new" libstdc++ will provide both the old and new variants simultaneously.
Sorry, I wasn't trying to imply the new libstdc++ wouldn't work with old code, just explaining to the poster why the new ABI is required in the first place. The changes to libstdc++ which are incompatible are what is causing the dual ABI to be required - And of course, the dual ABI is what allows old programs to continue to use the old ABI with a newer libstdc++ library without problems.