The FunctionRangeQuery uses FunctionValues.getRangeScorer which returns a subclass of ValueSourceScorer. VSC's TwoPhaseIterator has a matchCost impl that returns a constant 100. This is pretty terrible; the cost should vary based on the complexity of the ValueSource provided to FRQ. ValueSource's are typically nested a number of levels, so they should aggregate.
BTW there is a parallel concern for FunctionMatchQuery which works with DoubleValuesSource which doesn't have a cost either, and unsurprisingly there is a TPI with matchCost 100 there.