If I understand well, the goal is to have stoploss price above the minimum required by the exchange, which is not what has been achieved so far.
Only if amount_reserve_percent = (1 + pad) / (1 - abs(stoploss)) we get final stake amount * (1 - abs(stoploss)) > minimum required.
Here is a code example, with numbers from the example in the doc for this function:
stoploss = 0.1
padding = 0.05
min_required_exchange_cost = 10
min_required_exchange_amount = 12
min_required_exchange = max(min_required_exchange_cost, min_required_exchange_amount)
min_required_with_padding = min_required_exchange * (1 + padding)
min_stake_amount = min_required_exchange * max(min(padding + stoploss + 1, 1.5), 1)
stoploss_price = min_stake_amount*(1-stoploss)
print(f'[OLD LOGIC] stoploss_price ({stoploss_price}) < min_required_with_padding ({min_required_with_padding})')
min_stake_amount = min_required_exchange * max(min((1+padding) / (1-stoploss), 1.5), 1)
stoploss_price = min_stake_amount*(1-stoploss)
print(f'[NEW LOGIC] stoploss_price ({stoploss_price}) > min_required_with_padding ({min_required_with_padding})')