¿Es problemática una directiva using en un espacio de nombres detallado?

Considere este encabezado de biblioteca:

#include<vector>
#include<algorithm>
#include<iostream>

namespace Lib {
  namespace detail {
    using namespace std;

    template<class T>
    void sort_impl(istream &in,ostream &out) {
      vector<T> v;
      {
        int n;
        in >> n;
        v.resize(n);
      }
      for(auto &i : v) cin >> i;

      sort(v.begin(),v.end());
      for(auto i : v) out << i << endl;
    }
  }

  inline void sort_std() {
    detail::sort_impl<int>(std::cin,std::cout);
  }
}

Hace eldetail el espacio de nombres aísla con éxito los clientes de la biblioteca (y el resto de la implementación de la biblioteca) deldirectiva de uso ¿en este ejemplo? No estoy interesado en la discusión en¿Por qué "usar el espacio de nombres estándar" se considera una mala práctica?, aunque algunos de los argumentos se aplican incluso a "bien contenido"directivas de uso.

Tenga en cuenta que hay dos preguntas existentes sobre la misma situación pero condeclaraciones de uso:

Usar directiva en archivos de encabezado en espacio de nombres privado (a pesar de su título)Forma elegante de prevenir el envenenamiento del espacio de nombres en C ++ (cuya única respuesta es realmente una respuesta a la pregunta de "mala práctica" anterior)

Esto podría combinarse con cualquiera de ellos, pero la edición sería severa.

Respuestas a la pregunta(2)

Su respuesta a la pregunta