Thanks for writing back.
1. Your concerns about the user experience in the all-inclusive taxonomy approach are valid and make sense.
2. The fields in the repeatable field groups are searchable in the view that shows the repeatable field group posts, but not inside the view that shows the parent posts that hold the repeatable field group.
For example, suppose you have a post type "Jobs" which has a repeatable field group "Job Locations". If you'll create a view for "Jobs", then you'll only be able to use the custom fields directly attached to the "Jobs" posts for the search/filtering. You'll have to create a separate independent view that shows the "Job Locations" posts, in which the custom fields from the repeatable field group can be used for the search/filtering.
Because the entries in the repeatable field groups are saved as a separate post type, custom fields for the "Jobs" can't be used for search/filtering of view that shows "Job Locations" and likewise, custom fields for the "Job Locations", can't be used for the search/filtering of view that shows "Jobs".
A possible workaround, in this case, can be, that you can offer two different search forms to the visitors. First for searching the job posts, based on the fields attached to this post type. And the second one for the search by location, which will be a view that will be showing the "Job Locations" posts, with the location fields which are part of the repeatable field group.
3. Based on what we've discussed in this thread, the possible approach that will still involve a fair amount of customization, would be to use the combination of custom post types, post relationships, and custom taxonomies for storing multiple location information with the job listings.
Custom Post Types:
a). Country
b). State
c). City
Relationships:
a). One-to-many between Country and State
b). One-to-many between State and City
Note: these custom post types and relationships will only be needed for the establishing the connection between the location attributes. For storing the actual location information with the job listings, flat non-hierarchal custom taxonomies attached to the job listings post type will be used.
a). Country
b). State
c). City
Here is how the process of the job posting will look like:
a). A user will fill the add a new job posting form and for country selection there will be a select type generic field. The options of this field will be populated using a custom shortcode that gets the list of countries from the "Country" post type.
On form submission, the "cred_save_data" hook can be used to set the selected "Country" as a selected term in the "Country" taxonomy for the current job.
b). After saving the first form, the visitor will see a button to add the location information to this newly created job post. On clicking, he/she will be redirected to the second form which will be a form to edit the newly entered job post, that will have one select type generic field to select a "State". The options of this generic field can be populated using a custom shortcode that will get the list of all the "States" posts, which are related to the job's selected country taxonomy term.
You can add a single line generic field, which can be used to enter a new "State" name, if the desired state is not already available in the list.
On form submission, the "cred_save_data" hook can be used to set the selected "State" as a selected term in the "State" taxonomy for the current job.
If the user has entered a new "State" field, then be sure to include its post in the "State" post type and also connect it to the current job post's country post.
c). On submission of the "State" selection form, the visitor can be redirected to another form to edit the same job post, which will also include one select type generic field to select a city. The options of this generic field can be populated using a custom shortcode that will get the list of all the "City" posts, which are related to the job's selected state taxonomy term.
You can add a single line generic field, which can be used to enter a new "City" name, if the desired city is not already available in the list.
On form submission, the "cred_save_data" hook can be used to set the selected "City" as a selected term in the "City" taxonomy for the current job.
If the user has entered a new "City" field, then be sure to include its post in the "City" post type and also connect it to the current job post's state post.
d). To add another location with the same job post, the visitor can use the add location button from step (b) again, to first select a another state and then another city.
I hope this helps and let me know if you have any follow-up questions.