私はこれをよく見ます:
std::vector<Something> vec;
do_something_with_vec(vec);
Something *arr=&vec[0];
do_something_that_needs_carray(arr);
つまり、ベクトルはおそらく内部で配列を使用するので、これが機能する理由がわかります。これが定義された動作であるかどうか疑問に思っています(たとえば、実装者がstd::vectorの実装を実行できるかどうか。壊す)。
標準間に矛盾がある場合は、C++11標準の内容に興味があります。