I haven't looked at the code, so I don't know if such a function is implemented.
I suggest using a multiplier inversely proportional to the difference from the base speed of the base machine in the pumping formula.
For example, "Furnace 1" has a speed of 1 unit, "Furnace 2" has a speed of 2 units. That is, "Furnace 2" is pumped faster, so it needs a multiplier of 0.5 to the received experience.
Also for this you can make an option with a checkbox on/off complication.
You can also make an option to take into account the current boosters. And add a multiplier for this situation as well, although you will have to apply more logic and checks in each tick. Which will have a bad effect on UPS with a large number of machines. And this is already for hardcore.