To be honest, I am not clear about your example.
In my opinion, if vm_type=qemu, there is no difference between vm.get_address() and vm.wait_get_address().

My original idea to return True at this place is to avoid waiting if update_mac_address is not implemented for this vm_type.

I think you can use wait_for_get_address() where you want to use get_address().
If vm_type is libvirt, wait_for_get_address() will get a correct IP address.
if vm_type is qemu, wait_for_get_address() will return get_address() directly.

Could you give me more explanation about your opinion? 
Thanx..