Commit 2f0974fda942f28b09b866991121aef9cb939cce (dated 2013-11-25 19:27:25) effectively changed the UAVTalk protocol by making the InstanceId mandatory for all objects. Previously, InstanceId was not transmitted for a single instance object.
Other GCS software derived from OpenPilot project (like TauLabs and dRonin) has retained the original behavior.
The net result is that there are now two versions of UAVTalk which both identify themselves as version 2. This makes development of new software to talk directly to a UAVTalk-enabled flight controller very problematic.
Since the LibrePilot/OpenPilot variants where the ones that made the change, they should be the ones to increment their version numbers.