Arguably, subtyping in am OO language should either be signatures/interfaces only, or you should go full blown multiple inheritance for everything, as with the Fortress language.
Type checking is not exponential last I checked. However, languages with global type inference have exponential behaviour when inferring types for some pathological programs.
It makes it difficult to jump into an unfamiliar project
Assuming that’s what you mean by signature/ interfaces