(Da hier die mehrfache Nennung von "www" gleich als Spam interpretiert wird, verwende ich im folgenden mal "web")
Das hat in erster Linie hirarchische Gründe zum Aufbau eines Netzwerkes.
Der DNS-Server, der für "domainname.tld" zuständig ist, erkennt an der Subdomain "web" (3rd-Level-Domain), das der Rechner "web" im internen Netzwerk - meist natürlich beim provider - verlangt wird und zwar auf Port 80 (HTTP).
Während dessen kann der Rechner "mail" (mail.domain.tld) ein anderer seperater Server im Netzwerk sein und ebenso einen Dienst per HTTP anbieten, auf dem evtl. etwas völlig anders laufen kann, als auf dem des "web".
Da in der Regel der DNS-Server keinen HTTP-Dienst für extern anbietet (warum auch?) sind viele so gnädig und tragen als A-Record der 2nd-Level-Domain die IP des internen Rechners "web" ein - Somit ist das Surfen ohne "web" möglich, da der Provider diese Requests intern redirected.
Die meisten realisieren das zwar so, aber vereinzelt findet man auch Seiten, bei denen die Eingabe der Domain ohne "web" nicht funktioniert.
Domains lesen sich von rechts nach Links (also Toplevel (.de/.at/etc.), 2nd-Level, 3rd-Level (web./mail./etc.), usw.). Somit kann man komplexe Netzwerke in mehrere Teilsegmente unterteilen. Ein häufiges beispiel hierzu sind meist die Univeristäten (z.B. abteiliungXY.med.campus.uni-irgendwas.de)
Das Beispiel "de.yahoo.com" lässt darauf schliessen, dass hier für den deutschsprachigen Raum ein seperater Server verwendet wird und womoeglich fuer die restlichen laender auch. Zwar könnte man dies auch über eine Language-File realiseren, doch hierbei wird zu gleich die Serverlast auf mehreren Systemen verteilt und das Angebot ggf. auf eine gewisse Region abgestimmt. Wer schonmal eine Community oder vergleichbares grösseres Programmiert hat, weiss, wie schnell die Serverlast (Load) ansteigen kann, sowie ein paar 1000 Surfer gleichzeitig auf eine Seite das klicken anfangen. Ergo: de.yahoo.com