I'm going to make the case for Toronto, for New York, and for SF / SV. The reason I don't make the case for Vancouver is that it's essentially just a Toronto with a smaller talent pool to draw on from Amazon's perspective. It's like buying the non-M version of a BWM when you're a multi-millionaire. I guess you could do it, but why? Also, I don't understand the Texas or DC tech scene but there might be options here too. Lots of NSA programmers running around and they're working on some complicated datasets.
I think the Toronto case is the strongest, but I think any of the three are good choices.
1. Toronto is the most multicultural city in the world. It is in a country with a flexible, predictable, but different, immigration system, and with a fairly robust financial sector and infrastructure. If Amazon can't get a candidate into America, they can try getting that candidate into Canada instead. This is key. America makes up only 5% of the world's population and politics aside, is no longer an ideal place for a large percentage of the world's population due to racism and hostility towards immigrants / immigration. To attract international talent (including from New England, a short flight away which can be critical for taking care of aging parents) Toronto is by far the best choice in North America. It's more expensive than Ottawa, but more fun and has a number of high quality Universities near by (Waterloo, Toronto, Queens, and others) and compared to NYC or SV much, much cheaper. Vancouver wouldn't be a terrible choice, but there's less of a talent pool to draw from and the housing market is worse there. Toronto's current mayor is very friendly to tech companies, and there is growing focus on bike lanes and mass transit which means commuters from all corners of the GTA could make it into work. Most of the cultural elite (influential journalists, actors, etc) in Canada live in Toronto, which has subtle benefits like getting Amazon into TV shows or interviews through personal connections. Playing outside in the winter kinda sucks in Toronto though, Vancouver area has it made here.
2. New York has a huge pool of highly skilled developers with experience at firms where microseconds are critical. Nobody outgrows New York. It's also a place that has international prestige. An immigrant moving to Seattle or Portland is "moving to America" according to their family whilst an immigrant to New York is "moving to New York" Americans might not understand the huge distinction between the two, but to people in Pakistan or even Canada being able to make a living in New York is proving that you're one of the best in the world. It won't completely make up for the Trump presidency, but it would be a meaningful difference. Also, right next to banks and many important regulators and press people. Tons of American cultural elite as well. One downside of going NYC is that Amazon would have less bargaining power. The city is so huge that the injection of cash and talent matters less than in Toronto or Vancouver, so special concessions are harder to come by.
3. SF / SV is the easy, pricey case. The best machine learning developers live here. Machine learning is critical to Amazon's survival. They have success hiring here, but it would be better if they had HQ2 here. Salaries are much, much higher here, however.