This is just my opinion, I think each word in a query carries a certain weight based off positioning, regional vs global data, or a bazillion other factors that Google could take into account. A website would have a different relevance score for all three of the examples you showed above. Maybe one site is well optimised for Sydney and partly optimised for handyman. They rank better on “Sydney handyman” than “Handyman Sydney” because the weight is on the first word searched. If just “handyman” is typed, Sydney wasn’t in the search query, and Google determines there is local intent, then they might use a precise location of the search compared to the exact centre of Sydney. This would change the results yet again.