You keep using examples where the user would *not* want the classes to merge. Try thinking of it differently. Think of it in a case where you *would* want the classes to merge. The aforementioned case where a user wants Poly for the smaller sizes and PVC for the larger sizes, all automatically. Or in Laterals, if a user wants each size pipe to have a different linetype.
So basically, when the system prepares to size, it looks at Class 1, but specifically, the largest size in Class 1. It then looks at Class 2, and if the smallest size of Class 2 is larger than the largest size of Class 1, it treats them all as available sizes in the sizing operation. A user who wants unique linetypes for each size of Lateral would configure 5 or more classes, with the smallest size as Class 1, on up. And the system will combine them all, and treat it as if it was a single a class of pipe, using the full range of sizes.
So the blank is hardly ever needed. But in that rare case, where you happen to have two similar classes, and all the sizes of Class 2 are larger than those of Class 1, it will freely use them. So to prevent this, you could either add some smaller sizes to Class 2, or make Class 2 blank and instead use Class 3.