I originally thought that by using LEANERINFO for both observers and followers, we would make the protocol backward compatible. I now realize that it makes no difference.
Once we add observers, if we have an observer trying to connect to an old leader, even if we use LEANERINFO (with the same value 11 we have for FOLLOWERINFO in trunk), it won't work because the leader will expect acks from that observer. An old server can also connect as a follower to a new leader without a problem if we keep FOLLOWERINFO as is. We would have a problem if the follower were configured as an observer on the leader, but I suppose this is a configuration error.
My conclusion is that I don't see an issue with using OBSERVERINFO or FOLLOWERINFO regarding backward compatibility. The only issue I see is that having OBSERVERINFO creates yet another message and there is a way around it. I personally don't think it is a big deal to add another message, but some folks might not like it.
On my end, +1 for the patch. We can continue the discussion on adding OBSERVERINFO or not in the observer jira. For this patch, I think it is good as is.