A little further investigating revealed that the ~mix smartlist parameter has serious problems:
For ~mix, you have to specify a number of tracks to return, even if you don't actually know how many tracks will be in the pool of valid tracks based on the other smartlist parameters. So, I picked a number high enough that it should have included all eligible tracks, but never be too many to fit on that device. Instead, MC misreports the number of tracks that are returned in the smartlist as the number specified in the ~mix parameter. So, even if MC really only finds 100 qualifying tracks, it shows that it has found 5000. Compounding the problem, when I transferred those tracks to a static playlist, I actually ended up with 5000 tracks, but only 97 of them were unique, even though I included remove "duplicates of name" in the smartlist parameters. Somehow, the ~mix parameter will force the specified number of tracks in the parameter, even if it has to ignore other parameters to get the result.
IMO, the ~mix parameter needs to be rewritten so that, if using percentages, it is not necessary to specify the number of tracks to return, but rather has the option to use the pool of tracks returned from all previous parameters.