KVM was a dog in testing under CentOS and RHEL 5.x. The bridged networking has *NO* network configuration tool that understands how to set it up, you have to do it manually, and that's a deficit I've submitted upstream as an RFE. It may work well with CentOS and RHEL 6, i've not had a chance to test it.
Back when I was searching for a suitable virtualization platform, I found no difference in performance between Xen and KVM. I liked both, but settled on KVM.
ESXi back then was very limited in hardware support, so I never got to play with it much. People seem to like it.
And it's true that bridged networking support in centos 5 requires that you set up it manually, but that's what led me to learn ifcfg scripts. It's so simple.