La réponse courte pourrait être "pourquoi le feraient-ils ?" ou "pourquoi les autres le font-ils ?", mais quel est l'intérêt d'une réponse courte ?
Cela dépend principalement de la configuration du logiciel tournant sur le serveur, BIND a une directive de configuration nommée rrset-order
qui fait justement cela, par exemple, si vous avez :
rrset-order {order fixed;};
BIND renvoie toujours les enregistrements de ressources dans l'ordre où ils se trouvent dans le fichier de zone.
Avec :
rrset-order {order random;};
les enregistrements seront renvoyés dans un ordre aléatoire.
Le hasard n'existe pas dans un ordinateur. Les systèmes d'exploitation déploient beaucoup d'efforts pour créer un pseudo-aléa en recueillant des événements "aléatoires" tels que les interruptions, le trafic réseau, les événements liés au clavier ou à la souris, etc.
Mais plus vous appelez random(3)
moins il donne de valeurs vraiment aléatoires et plus ses résultats sont prévisibles.
Dans notre cas, le caractère aléatoire des résultats d'une requête DNS, les serveurs pour com. et net. ne seront jamais (enfin, ils pourraient, mais vous ne voulez pas jouer avec la colle) utilisés pour renvoyer des résultats pour, disons, www.google.com, c'est l'affaire des serveurs de noms de google.com, donc, il n'y a pas de mal à toujours renvoyer les serveurs de noms de google.com dans le même ordre, une fois que votre serveur de noms récursif les obtient, il les utilisera dans un ordre circulaire pour faire des requêtes de toute façon.