I found that in the current HEAD in master testing it with an I218-LM in autoneg mode, when link is forced to be renegociated by the peer (e.g. via ethtool on a peer Linux box) _some_ change events are lost.
It is quite random, but it seems to happen more while changing the speed than when changing the duplex mode. However, when one or more link change events have been lost and the phy medium is disconnected and reconnected, the link speed and duplex mode are then correctly updated. Marc