Eu não acho que é bem assim e o merge automático da interface é bem interessante quando bem usado. Um bom exemplo:
interface Env {
DB_PATH: string;
JWT: string;
}
Esse é um caso onde eu precisei convencer ao compilador que as variáveis de ambiente JWT e DB_PATH existem na interface interna do Bun prevenindo checagem contra undefined.
Outro ponto é que o merge automático só acontece se explicitamente escrever uma interface com o mesmo nome. Se alguém faz isso antes de verificar, é no mínimo desatento...
Interfaces também são idiomáticas para firmar um contrato entre objetos, enquanto tipos são idiomáticos, bem, é óbvios...
Existe um monte de utilidade para interfaces e, obviamente não irei me aprofundar tanto assim. TypeScript por si só é bem cru no que diz respeito a tipagem, então a discussão teria um monte de exceções ou ênfases.