v4.7 is outdated. update to 4.9 and see if it still happens.
if this is only reproducible on v4.7 and not later, then it’s already been fixed. I hope you’ll understand why any complaints against an obsolete version cannot be heard.
Just to be clear: are you claiming that essentially identical application code, in C++ and in Python, using APIs of the same OpenCV version, produces different results?
note that this could be considered “cosmetic” because the markers themselves only serve to identify the squares. the actual corners are derived not from any markers but from the saddle points of the checkerboard pattern.
it’s very ugly though and ought to be fixed.
the markers also appear to “creep” ever further away from their center positions… I wonder if any code will eventually touch and overlap with an adjacent square.