Milan, I don’t think you understand what I’m suggesting. Imagine a TT being used to set categories rather than the height, weight, chest size etc of the riders. Take the riders finish time as their rank and then put the top 25% in A, the next 25% in B and so on. Then when the C race happens you have put riders of similar ability together. In practice, some will have better race craft and will consistently do better, and that quartile also includes quite a wide range of fitness/ability anyway, so some are better Cs than others. So there will always be a spread of finish times in every cat no matter how carefully you set them up.
In the current w/kg system those who are labeled as C includes some who could compete in B (fitter, but heavier riders who can therefore stay below the 3.2 threshold), some who are real C (average weight and ability) and some who should still be in D (weaker riders, but because they are so light they still exceed the 2.5 threshold for D). Similarly, some of the Bs should still be in C, and some of the Ds should be in C. So riders who should be having a very competitive race (ie broadly similar finish times) in C end up being artificially separated into three different races.
I know this scenario happens from personal experience as a lighter rider (67/68 kg) who got promoted out of D and C before I was even halfway up the field in those cats. A cat system that is working properly should never promote someone unless they are consistently winning/on the podium in their current cat. The w/kg system doesn’t get close to that basic truth.
Finally, I’m not suggesting we use TT races to set race cats (although if people gave 100% it would be far better than the w/kg system), a system based on relative performance against other riders during racing would better, and Zwift actually maintains that metric already. It’s just easier explain the problem with a TT example.
Edit: here’s a link to a post I did back in May, where you can see the amount of overlap in times between riders in different races. They should have been in the same category and racing together: