What is the correct way to modify the RF transmit power

What I'm going to do is make changes to the RF power of the device. The device I use is a module of 52840, and the protocol uses thread.
First,I used my own ncs-based program and used the API: otPlatRadioSetTransmitPower to modify the transmit power. I set the power to 0dBm and 8dBm respectively and recorded the current data. The results are shown in the figure, 15.83mA at 0dBm and 19.44mA at 8dBm.
Then I used this sample github.com/.../radio_test.This sample can change the transmit power via cmd:output_power.
I tested the current at power 0dBm and 8dBm. The results are shown in the figure, 11.45mA at 0dBm and 21.01mA at 8dBm.

The first thing I want to confirm is whether otPlatRadioSetTransmitPower is an API that accurately modifies transmit power?

Then I think that although the transmit power of different programs should be different, the difference between the current at 0dbm and 8dbm should be almost the same. Why is radio_test current difference of 9.56mA between the transmit power of 0dBm and 8dBm, while the current difference of my program is only 3.61mA?