Dependiendo de la topología del circuito que queda tras la síntesis y las funciones que implemente cada una de sus partes,tendrás una serie de retardos,no sólo en los caminos de interconexión,sino también en los bloques lógicos que conforman tu hardware.
Como bien sabrás,la señal de reloj es común para biestables y demás partes síncronas de la fpga,por lo que una señal de reloj excesivamente rápida en conjunto con un retardo,considerando siempre el caso peor,podría ser causa de un nuevo flanco activo en un biestable cuando aún no le han llegado las señales resultantes del flanco anterior,lo que provocaría estados erróneos.
Además de eso,creo también andan implicados los tiempos de setup,hold y demás,pero el principal motivo de esta limitación son los retardos en la propagación de las señales.
Una forma de mejorar esto es optimizando la síntesis,lo cual quiere decir que hay que optimizar el diseño (vhdl o esquemático),hacer un código más correcto,modularizarlo....y buscar un mapa de entrada-salida lo más óptimo posible