Yes, Mik, you are right. With some simplifying an MS should perform the following:
When MS is power on in VPLMN it will try to register in Last Registered PLMN. If it is impossible then it will try to register selecting PLMN in following order:
2. PLMNs on User preference list (if any).
3. PLMNs in operator preference list (if any).
4. Other PLMNs with signal strength higher than -85 dbm.
5. Other PLMNs in random sequence.