Not really. I suspect you could design a BMS to handle larger discrepancies, but you'd also be reducing the pack capacity by doing it. The worse/bad module reduces the life of the remaining modules as they are constantly compensated to try and adjust to match the bad module. Efficiency also goes down as the BMS generates waste heat as it attempts to make the needed adjustments.
Using mismatched modules as a one-off for some ICE to EV retrofit or home projects may not matter as much. You may not care about longevity. These projects are often a "can it be done" cheaply rather than done well.
Would be more intricate with larger packs that vehicles have these days. Back in the olden days, of conversions, and things like the old Zap Cars, we had a different method of balancing the lead acids. Instead of using resistors to bleed off the higher voltage batteries, the balancing hardware would shuttle balance. As in, shuttle charge from higher voltage batteries to the lower voltages. Of course, some power is lost due to the inefficiencies, however, instead of losing 100% of that power as heat, you'd still get ~80% of that shuttled power moved to the lowest batteries. So in essence, you'd still have the power to use. Speed was limited, but in the grand scheme of things, it did just fine. Easy to do though, when the battery pack consists of only 6-14, 12v deep cycle batteries. Still got an easy 50 miles range out of my Alfa Romeo 164! And it was more reliable than anything Alfa ever built!
something like that would be harder to implement these days, or I should really say, costly, than resistors. For a battery like Tesla's, it would need to be a multi-teared approach.
Tier 1: Brick Level Balance--- Bricks within a single module are shuttle balanced to only the other bricks within that module.
Tier 2: Module Level Balancing- shuttle balance each module to each other module, at module level voltage.
That would be about the only real way to mitigate mismatched bricks within modules, and mismatched modules within the pack.