Pues de haber estudiado una carrera relacionada con las redes y trabajar, entre otras cosas, en performance de aplicaciones web, chico, consparanoia total.
Sé que si no hay velocidad pues no se puede sacar de donde no hay. Pero en las magnitudes de día de hoy, el 90% de las páginas por las que navegas no van a pesar más de 10mb (quitando carga de videos, contenidos más pesados, etc). Si sólo tienes en cuenta la velocidad punta y asumes que no hay latencia ni TCP, la diferencia entre cargar 10mb con líneas de 50mb a 300mb es de 1.6 segundos a 0.26 segundos.
Pero si tienes una latencia anormalmente alta o pérdida de paquetes en algún punto entre tu ordenador y el servidor web (no digo 20ms de diferencia, que no es nada, digo por ejemplo la diferencia de 0 a 200ms), tienes:
- el tamaño de las ventanas TCP de las conexiones HTTP tardando más en crecer por el slow start (va a tardar más en llegar a alcanzar los 50mbps con 200ms de latencia que sin ella, hasta el punto en el que cuando llegues a notar de verdad la diferencia entre 50mbps y 300mbps la página ya probablemente haya cargado entera)
- esto se va a aplicar a cada una de las mil request de recursos que necesite la página, en el momento en el que por ejemplo, un JS mal hecho necesite bajarse síncronamente un PNG, y espere a tenerlo para seguir pintando la página, y use HTTP sin Keep-alive o HTTP/2 y tenga que empezar una ventana TCP desde cero otra vez... vete sumando 200ms más para cada una, como poco. A lo tonto a lo tonto empieza a ser mucho más tiempo...
En resumen, la percepción del usuario al navegar, que es a lo que me refería, una vez asumiendo que pasa de una velocidad mínima va a variar mucho más en función de la latencia que en función de la diferencia de velocidad punta/capacidad del enlace.
Te dejo algo de literatura al respecto: smutz.us/techtips/NetworkLatency.html.