Weaver tcp self regulates its speed, however it does this by zig zagging up and down. It will slow down when the receiver cannot keep up and speed up when the congestion window and receive window are not filled.
Isp's tend to have large buffers for various reasons, the main one been it helps situations when there is saturation either isp or user side. So what happens is because the isp is buffering the traffic, essentially the receive window gets too big. The data gets backlogged in the isp's buffers and hence buffer bloat. Then all data has to wait its turn to get through that buffer and hence higher latency.
Basically by policing the traffic on the router, it will slow down traffic before TCP mechanisms do and prevents the receive window getting too big. This moves the buffer to the router, and you have direct control how big those buffers are on the router.
There is downsides, one been that typically single threaded transactions will not max the connection as the policing prevents thats. But they will still typically be able to utilise a high %, and multi threaded will typically flat line at the police limit.
I know it works as I have it configured on my own connection. Before policing my downstream downloading from steam caused heavy packet loss, now it does not, and typically latency is only slightly affected now as well.