If you want libvirt to do the right thing, provide a proper
capabilities interface. Using the version has its downsides as
much as the help text.
That's simply not the case. Please, provide an actual example where
version is not reliable and backports aren't trivially easy to detect.
t=0 starting point, cache=unsafe is unknown
t=1 qemu upstream adds cache=unknown
t=2 libvirt adds support for cache=unsafe, releases
t=3 evil distro backports cache=unsafe, releases qemu-kvm-1.2.3.4
t=4 user tries libvirt from t=2 with qemu from t=3, cache=unsafe not
detected
version numbers force a libvirt update every time a feature is
backported.