The problem with this approach is that if this becomes the norm, which so far it seems it will, the next pandemic, the rest of the world will be mega super screwed. Right now, the saving grace of us folks in Canada is that the EU, unlike US and UK, did not prohibit vaccine exports. If they had put the same barriers, we Canadians (as well as most other nations on earth) would have had to wait for the great powers (US/UK/EU) to finish vaccinating their 16-year olds before we could start vaccinating our 90-year olds. So many would have died who would have survived if the vaccines were shared between countries based on population or elderly demographics. It would have been a net gain for US/UK/EU, a net loss for Canada/etc and a net loss for the world as a whole. That's because when you prioritize not-at-risk population from country A over at-risk population from country B, for every A citizen you save, you cause 7900 citizens from country B to die [0].
Also, let's not pretend any country could have signed such a contract with the vaccine manufacturers. If Canada tried to sign a contract with a US manufacturer that said they would give Canada their 96-million-dose contract before selling a single dose to the US, I bet the US government would have ripped the contact to shreds and imposed their own rules on it. Only the countries in which the vaccine producers are located can sign such contracts. So in practice, there is little difference between contract and rule-making in terms of who can do it and what the outcomes are.
[0] https://www.cdc.gov/coronavirus/2019-ncov/covid-data/investi...