Are you saying that when someone supplies control points as (integer) pixel values to -distort perspective that you don't add 0.5 to each to convert to image coordinates before computing the coefficients? If not how are you doing that correction within -distort perspective. I am now very confused what you are doing and what your coefficients correspond to in terms of control points.Other way around. I don't add anything to the control points they should be in image coordinates not pixel positions.
I doubt that GIMP does anything but compute the coefficients from the (integer) pixel values!!! I doubt they it is that sophisticated as to the 0.5 pixel issue.