That is default IEEE behaviour: https://en.wikipedia.org/wiki/Rounding#Rounding_half_to_even
This is the default rounding mode used in IEEE 754 operations for results in binary floating-point formats.
Though it's definitely a bad default because it's so surprising. Javascript and Rust do not do this.
Not really anything to do with determinism though.
Except on Windows! Actually it depends on if you installed Python from the Microsoft store or the official download. What a mess.
They don't want to fix it because it might be confusing temporarily, so instead they're going to leave it broken forever.