The major difference between those three images is:
Stretch : modern 4.x (14? 17?) kernel, based on Debian
Bionic: modern 4.x (14? 17?) kernel, based on Ubuntu
Xenial: legacy 3.4 kernel, based on Ubuntu
The modern kernels are generally pretty-close-to-mainline linux, thanks to the hard work of the guys in the linux-sunxi group.
Since not everything has been reverse-engineered, it doesn't (yet) support all the device features.
h3consumption will not work with the modern kernels, so is not included
The legacy kernel is based off a vendor-provided kernel that has been cleaned up and had a few dozen (hundred) security patches on top of it.
It's based of the now end-of-life 3.4.y kernel tree that was initially released in 2012 and was marked end-of-life in 2016 following the final 3.4.113 update
All the hardware should work with these kernels, but the anything that relies on a modern kernel (eg. btrfs) won't work, and you'll be missing the last 2 years of security/stability updates.