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?