Proposed resolution:
This wording is relative to N4901.
Modify [locale.members] as indicated:
string name() const;-5- Returns: The name of *this, if it has one; otherwise, the string "*".
-?- Remarks: Two locales have identical names only if their facets have identical virtual function semantics.
-?- Recommended practice: The name of a locale that has a name should be such that setlocale(LC_ALL, name().c_str()) returns a non-null pointer. [Note 1: With such a name locale(name().c_str()) succeeds and does not throw runtime_error. — end note]