En fait, c'est surtout déconseillé d'utiliser dans les en-têtes (.h), parce qu'il sera alors utilisé (plus ou moins) automatiquement dans tout le projet.
Grosso modo, si on utilise un namespace (ici std), c'est justement pour éviter que les noms de classes/variables rentrent en conflit. Commencer par inclure le namespace partout, c'est faire exactement ce qu'on a cherché à éviter.
Bref, si c'est toi qui code un fichier source (.cpp/.cc), tu peux tranquillement inclure std dans ton fichier source, mais c'est pas dit que les gens autour de toi voudront qu'ils soit inclus dans leurs fichiers sources à eux. (Par le biais des en-têtes ; perso, j'aime bien appeler mes "std::string" "string", et ça me fait toujours ch*er quand quelqu'un inclut soudainement std dans tout le projet)