What version of KVM have you got ? There was one recent release which
broke the 'boot=on' parameter.
I have kvm-85.
Your XML looks fine - the <boot dev='hd'/> tag should
have resulted
in the boot=on parameter being used on the first disk. Thus I suspect
you have the broken KVM release.
So, should we add 'boot=on' to qemu-options.hx in our kvm package?