Recommended way to organize product types and fields in Craft Commerce
I read and reread #15930 and it suggested that I should create one Product Type for each unique kind of product -- which would be something like: 

Product Types


Sewing machine
Chair
Scissor


Each of these product types would then have their own set of fields - some being reused accross all or multiple product types, while some being specific for one product type:

Field Groups


General


Name
Image
Manufacturer
Product Family &lt;-- category
etc.

Sewing machine


Usage area
Machine type
etc.

Thread


Thickness
Material
etc.



Product Family (from General) would be a Category-field that lets me select one or multiple categories that the product would belong to. Product Family would look something like this: 

Product Family


Textile


Sewing Machines
Steam pressers


Cabinets
Tables
Dollies
Accessories

etc.

Profiling


Embroidery 
T-shirt printers
Laser engraving machines
etc.



I've verified this with Nathaniel Hammon from Pixel &amp; Tonic. He adds that "An added benifit of using categories", what I call Product Family, "is that you are able to use them in conjunction with the promotions (sales &amp; discounts) functionality that is built into Commerce"

Field layout

I went ahead and created the following categories: 

General: Product Family
General: Supplier (manufacturer)
General: Intended audience
Sewing Machine: Application
Sewing Machine: Stitch type
Sewing Machine: Type
...


I then created the following field groups: 

Product
Sewing Machines
...


Then I created the folloing Product Types (in Commerce):

Other products
Sewing Machines
...


Then I split the field layout for Sewing Machines into two tabs: One for general data, not specifically associated with sewing machines and one for sewing machines specifically:



The general fields come from the general field group and the details-fields come from the Sewing Machine field group.

Final thoughts

I have not yet implemented a filter, like the one in the question. I'll revisit this post and update you when I've progressed.