I believe there is misleading or even factually incorrect info in "3.5.3 Overflow, Underflow, and Rounding". I think most of that is because in the examples only one bit is dropped and then half of the cases are ties.
In particular: the behaviour of round() and lrint() (for lrint we have to assume FE_TONEAREST mode is set, more info here) are actually rounding to the nearest integer and they only differ in the case of ties.
All the variants are well explained in: https://en.wikipedia.org/wiki/Rounding#Rounding_to_integer