I think it depends on the requirement as well. Are you having specific regions which will only be listed or there is a chance of having arbitrary regions as well. Problem with the PromptFieldValue is, this control will only load values from some pre-existing localized region values. Hence, any value other than the ones exist in Pega will need to be created a separate Field Value . If the list is unknown then again, the number of such field values will have a chance to grow exponentially. On the other hand, maintaining a Data Type will be lot easier for new values.
Changing Data type is definitely a better approach and easy to maintain. Creation of Field Values whenever new region created will not be a good approach as this is a new rule creation and not exactly a configuration.
Pega rules is not a maintenance critical thing. But compared to everytime create a new rules(Field Value) it is better to create a new row in a Data Type is definitely better and less memory consuming task. Next thing is, think of a situation where your application is in production and there might be a different region added. So, it is a good practice to delegate this kind of things to users. So, creation of a new Field Value is not a task which can be done by user, but if you delegate a Data Type to user, they can easily maintain it.So, when we talk about Best Practice, all these things should be taken into consideration.