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.