We've previously discussed licensing of optimization to deal with mixed precisions: What should the license allow, and what makes sense?
How much work is it to implement various policies? The issue may be top-down vs bottom up domain inference; widening / coercing downward. The traditional compiler dichotomy for this is Inherited attributes vs. Synthesized attributes.