In principle I can see some appeal to this, but it feels like it gets awfully messy when you start looking at the details. I mean, just to begin with, the methods usually aren't *shaped* the same way on subclasses vs. typeclasses -- the subclass usually assumes this object as a parameter, whereas the typeclass has to spell it out explicitly. Consider that nobody actually subclasses a numeric type from Numeric, because the interface is shaped like a typeclass.
And then there are the compiler implications. Consider: *invoking* a method directly on an object is very different from invoking a typeclass *with* that object. In principle they're both function calls where the object in question is a privileged parameter, but I'd be a little surprised if they look that much alike in the generated JVM code. And since you're saying that the decision about which one to use is made at the *call site*, that means that the method itself has to always be set up to handle either -- indeed, *every* method that takes a subtyped parameter must always be compiled to do so.
I mean, implicitly isn't there just because people like having more verbiage. It's dealing with the fact that a typeclass is actually a *different* object than the one you're invoking it on. That's not a small detail.
So I'm a bit skeptical. It's an intriguing concept, and I'm curious what the folks who know the compiler better think of it, but I doubt it would be worth the effort involved in making it happen (and, I suspect, would cause an across-the-board performance hit)...