Różnica jest taka, że w pierwszym zapisie obiekt strumienia jest przekazywany 'kaskadowo', a w drugim sam jawnie wskazujesz obiekt, na rzecz którego zostaje wywołany operator <<.
Operator << jest przeciążony dla obiektów std::ostream w taki sposób, żeby zwracały referencję do zmodyfikowanego strumienia.
Jeśli masz cout<<something<<foo;, to po wykonaniu pierwszej operacji (cout<<something), w tym miejscu zostaje zwrócona referencja do strumienia cout, żeby możliwe było wykonanie cout<<foo;.
W efekcie zostanie wykonane coś w tym stylu: (cout<<something)<<foo, gdzie nawias, po wypisaniu somtehing, "zamieni się" na cout.
Twój pierwszy zapis jest równoważny drugiemu.