It is true that the best lineup(s) are often projected lower (also maybe lower average, lower ceiling/floor what have you) than the optimal lineup. However, that is not in conflict with the statement that the optimal lineup usually performs better than suboptimal lineups. Because there are far more lineups with lower total average (close to the mean), than lineups with high total averages. So the probability of the BEST lineup having a (near average) total average is much higher than the best lineup having a very high total average. Simply because there could be hundreds, thousands, millions of times as many lineups with a lower total average. HOWEVER, the lineups with higher total averages will perform better than the vast majority of lineups with lower total averages because there are so many that will be really really bad, but these are hidden from you in lineup rewind because you're only looking at the top ACTUAL scores.
Of course this is the same with salary, lineups with a salary of 50k tend to do better than lineups with a salary of 49k, but very often we find that the top lineup is a lineup with a lower total salary. This is because there are more ways to make 49k lineups than there are 50k lineups (usually). So why do we implement salary constraints but not average/floor/ceiling?
The first reason, as previously mentioned, is that the users are very aware of where the bounds are. They get a good intuition for what setting the salary cap to 49.5k means. But that doesn't hold true for setting the average score cap to lets say...250 points.
The second reason is that have a very strong feeling that DFS players actively try to spend all of their salary cap. Even though salary is (somewhat) arbitrarily assigned by the DFS sites, players feel better about a lineup that uses all their salary. Avoiding max salary lineups does decrease the chance of your lineup being replicated in GPPs so there's some game theory edge. This is not likely to be true for average, and definitely not true for "FC floor/ceiling projections", because in order to maximize average score, you would need an optimizer, which isn't used by most DFS players. And of people using optimizer, I imagine very few try to "maximize" the average. They'll probably submit lineups that have high average scores, but not optimal, so if you're trying to avoid those lineups by capping averages to something lower than their already suboptimal values, you're probably in a dangerous zone where there are many many many low quality lineups. And the reason why allowing caps on floors/ceilings definitely won't give you a "game theory" edge is because unlike salary and average, FC floor/ceilings aren't available to everyone.
Third, salary cap is already an necessary constraint, so changing the max from 50k to 49.5k does not affect the solve speed. But if you add a constraint such as total average cap, then you're adding whole new dimension of constraints that will make the computation slower. We're not opposed to adding constraints that may speed the solves down (we've done it many times), but we are very hesitant to add them if they don't provide a clear benefit to users.
Here's an alternative solution, since what you're saying is "projections are good and all, but clearly there's uncertainty so I want lineups that doesn't rely solely on projections". Normally, that's what the other constraints are for, exposure, stacking, groups etc... But if you just want to account for projection uncertainty, just add some randomness. This will give you lineups that you may not get just optimizing on projections, and as a bonus it actually speeds up calculations. And if you feel like randomness doesn't give you control,I would argue that it gives you as much control as setting an arbitrary cap on total average/floor/ceiling would.
I want to emphasize that we really really appreciate our users making suggestions and even debating with us. We're currently not considering this feature because we're not currently convinced that it's a useful feature. If you or anyone else make a good counter argument for implementing the feature, we'd be happy to revisit it. Many times, new features that we come up with ourselves draw inspiration from feature suggestions that we turn down because they provide us with insight on what our users want.