What version of KVM have you got ? There was one recent release which
broke the 'boot=on' parameter.
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.