The initial emoji flags were restricted to a small set o countries, which was pretty discriminatory, the regional indicators were added to Unicode to avoid this issue, but this only allowed entities which have defined ISO 3166-1 alpha-2 codes. This allowed to side-step the issue of quasi-countries like Taiwan or Palestine, which have ISO codes even if they are not widely recognised as countries. Confusingly, some weird colonies like Wallis and Futuna or Wake Island are supported, but not the significant divisions of Great Britain (like England).
Change is a problem: characters tend to have a longer life that countries. Many countries have come and gone since my birth; even if the Soviet Union has disappeared and its country code is officially deprecated, old texts referring to it still exist, and so do graphical representations of its flag. What will happen when a country whose flag has been emojified disappears and its country code is unassigned? People complained that the system does support regional flags that appear in sporting competitions, like Scotland. Yet some of these might become country flags soon.
To make things a bit more confusing, many organisations which are not countries are assigned codes, some of which like the UN (:united_nations:) or the EU have flags. You can see what is supported on not on the test page, which I updated. Apple support the EU flag, but not the UN. Still, what is the flag of the Eurozone? You could composite a euro sign with a flag, maybe. The funny thing is, there is character for some euro bills (💶) similar characters exist for the US dollar and the British pound, but no other currency. It would have been more logical to represent them as composite characters, a banknote character and zero width joiner with the currency symbol.
Things are not going to get simpler, there is a proposal to encode country sub-divisions (like England, Wales, the US states, but also things like Swiss cantons). surprisingly these flags are not encoded using the regional indicator range, but instead the flag character (🏴) and characters in the tag range. So for instance the flag of Zürich would be the sequence 🏴 (black-flag, tag-C, tag-H, tag-Z, tag-H, tag-cancel). There is a test page using the Babel Font.