You can hide country and region inside your plugins app/code/company/Magento_Theme/Plugin/Checkout/Block/LayoutProcessor.php
This does not remove it but makes it invisible so close enough from a users point of view for checkout.
$jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']
['children']['shippingAddress']['children']['shipping-address-fieldset']
['children']['country_id']['visible'] = false;
$jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']
['children']['shippingAddress']['children']['shipping-address-fieldset']['children']
['region']['visible'] = false; // I think it's region...
Or could modify it in the DB possibly, but some of the forms for customer addressbook are still hard coded in template theme. Search in files for the label, make a copy of it as needed in your theme and make it style="display: none;" ?
Urgh.... why...
Can also say State is Required for and uncheck the country in the Store COnfig
https://www.magestore.com/magento-2-tutorial/removedisable-magento-2-state-option/
To set up the state options in Magento 2 you need to follow these steps:
On the Admin sidebar, tap Stores. Then under Settings, choose Configuration. In the panel on the left under General, choose General.
Expand the State Options section, and do the following:
a, In the State is required for list, select each country where Region/State is > a required entry.
b, Set the Allow to Choose State if it is Optional for Country field to one of > the following:
Yes In countries where the state field is not required, includes the State > field as an optional entry.
No In countries where the state field is not required, omits the State field.
When complete, tap Save Config .