If we add a new ACF Select field with choices and a default value and use get_field() before the post was updated we will have not a default value, but an array of choices. It is very uncomfortable, if I expect to have false or ‘default’, but have an array() of choices instead.
I think you have something else going on other than what ACF is doing. There are too many paths to go down to say exactly what.
Under normal operation, when you use get_field() for a field that has never been updated ACF will not find a field_key reference for the field and will not know what field definition the value is from so it will not return the default value as set in your field definition. Instead, it will return whatever meta value exists in the database for the “meta_key” without any formatting. My guess is that there is something already stored in the database for the meta_key you are using as your field name. My first step would be to inspect the database to confirm that values are already stored for this meta_key and to figure out what stored them and probably change the name of my field.