Proposed resolution:
In [string.capacity], just after p. 1 add a new paragraph:
Throws: Nothing.
In [string.access] replace p. 1 by the following 4 paragraghs:
Requires: pos ≤ size().
Returns: If pos < size(), returns *(begin() + pos). Otherwise, returns a reference to a charT() that shall not be modified.
Throws: Nothing.
Complexity: Constant time.
In [string.accessors] replace the now common returns clause of c_str() and data() by the following three paragraphs:
Returns: A pointer p such that p+i == &operator[](i) for each i in [0, size()].
Throws: Nothing.
Complexity: Constant time.