Line 310 in purchasing/supplier_payment.php is hardcoded with number of decimals and hence it did not use the chosen 3 decimal places you set in the preferences for Prices/Amounts.
This appears to be the only hardcoded place left in FA 2.3.
Omitting the last argument ($dec) will automatically take the preference value set when the function amount_row() which finally calls the function amount_cells_ex() is executed. These functions are defined in includes/ui/ui_input.inc file.
Hence Line 310 in purchasing/supplier_payment.php :
amount_row(_("Bank Amount:"), 'bank_amount', null, '', $bank_currency, 2);
should be changed to:
amount_row(_("Bank Amount:"), 'bank_amount', null, '', $bank_currency);
It stands committed in FAMods in my unofficial FA 2.3 repo.
@joe: Kindly do the needful in FA 2.3 and in Line 304 in FA 2.4.