I agree with rejecting this proposal. I understand the motivation, but It doesn't feel right to me.
I often want something like 'instance force IsString Text', but in many cases the module will also contain a few places where want to use String, so I wouldn't be able to use 'instance force IsString Text' for the whole module and I'd have to fall back to 'default Text' (which I do). So there's an odd overlap between 'instance force' and 'default', it would feel strange to have both of these features. I'm not sure we've fully explored the design space here.
"The type of functions with occurrences of Cls that cannot be instantiated" - can this be rigorously defined?
In general the approach seems quite ad-hoc. e.g. if I import a function f :: Cls t => t -> Int into a module with `instance force Cls Bool` then it gets instantiated, but instead if I wrapped it in a newtype
newtype T = T (forall t . Cls t => t -> Int)
f :: T
then importing f would not instantiate Cls, presumably? Defaulting works in both of these cases though.
Cheers
Simon