O
To pick a pool: it's up to you to decide, depending on available pool storage capacity, speed. Same for compute and network. It's very very specific to your own needs, there's no universal rules.
Host selection for a VM: it's not decided by XO but by XAPI (except if you specifically ask to boot on a host). IIRC, it's a mix of load and memory available, but if you want to dig further, it should be written in the XAPI code somewhere 🙂