This is correct because
SQLSETPROP(0,'Transactions',2)
set a status into the Client ODBC driver,
and this send a implicit BEGIN TRANS to the backend.
The COMMIT remove 1 to the remote transaction level count,
but not change the status into the Client ODBC driver.
Fabio