Hi Justin,
Yes, you're correct in your response on Nov 26: XML sitemap exclusion won't guarantee that the pages aren't indexed, as they can still be discovered by Googlebot. Instead, you'll need to edit your Wordpress theme. I'll give some instructions for the 'Storefront' theme here, which should work in the majority of cases, but you may need to amend them if your theme is heavily customized.
When the page loads, it'll call the get_header(); Wordpress function, and pass the argument 'shop' to it, like so: get_header('shop');
That will prompt Wordpress to go looking for a file in the theme root called 'header-shop.php'. If that file doesn't exist, it'll load the default header.php file instead. If you do have a header-shop.php file, edit it to add the meta noindex tag on category pages. If you don't have a header-shop.php file, make a copy of header.php and rename the copy header-shop.php, saving it to the root folder of the theme.
Now in the header-shop.php file that you're amending or have just created, add something like the following before the closing tag:
if ( is_product_category() or is_product_tag() ) {
echo "";
}
You should take care to ensure that the conditional statement there is working: you don't want to inadvertently noindex all of your shop pages! So test carefully on a local version of the site, and make sure that you aren't seeing noindex tags in the source code of the non-taxonomy pages.
I'm afraid I don't know the answer to your second question. If I had to hazard a guess, I'd say it's because the developers would receive more criticism for enforcing noindex tags on certain categories of page than for not providing a noindex feature. If they put noindex on taxonomy pages by default, for example, and didn't provide an easy plugin for removing it, they'd probably get complaints about that. Or it just isn't an important enough issue in terms of the overall WooCommerce development roadmap.