When the order is placed, the quote is deactivated. The field is_active is set to 0.
There is a cron that removes all the inactive quotes that are older than X days.
The cron is sales_clean_quotes and it maps to Magento\Sales\Cron\CleanExpiredQuotes::execute().
What happens to order if associated quote removed and vice versa?
Nothing. The order is valid if ...
After set the shipping address in quote use below code to set shipping method programatically
$shippingAddress = $quote->getShippingAddress();
->setShippingMethod('shippingMethod') //shipping method
->setShippingDescription('shipping method ...