Comment 26 for bug 124440

The function that determines the scroll rate is in gtk/gtkrange.c

/**
 * _gtk_range_get_wheel_delta:
 * @range: a #GtkRange
 * @direction: A #GdkScrollDirection
 *
 * Returns a good step value for the mouse wheel.
 *
 * Return value: A good step value for the mouse wheel.
 *
 * Since: 2.4
 **/

Here, the scroll rate is determined dynamically by a smart (not so much?) algorithm:
delta = pow (adj->page_size, 2.0 / 3.0);

I don't want to offend the gtk developer that implemented this algorithm there. Obviously it may have temporarily solved the users complaining about too fast/too slow scrolling, but now it is time to make the scroll rate modifiable by the user.

Of course, implementing a new scrolling algorithm from scratch (with smooth scrolling) must be a priority too, since Ubuntu will possibly be coming to smartphones/tablets. But that rather than waiting for that, this problem can be fixed by a simple gtk patch which will read the scroll rate from a config file.