23:59:00.000000000 is serialized as 23:59;
23:59:01.000000000 is serialized as 23:59:01;
23:59:01.100000000 is serialized as 23:59:01.100.
It looks like people value consistency over prettiness when it comes to values produced by serializers, and it's more straightforward to parse a value when all parts of the format are always there. See FasterXML/jackson-modules-java8#76.
Other links where people are confused/irritated even by the behavior of LocalTime.toString in Java:
#333 is a similar issue.