Raciocinar sobre se a herança (ou qualquer recurso único, na verdade) é necessário ou não, sem considerar também o restante da semântica da linguagem; você está discutindo no vácuo.
O que você precisa é de uma filosofia consistente de design de linguagem; o idioma precisa ser capaz de resolver com elegância os problemas para os quais foi projetado. O modelo para conseguir isso pode ou não exigir herança, mas é difícil julgá-lo sem uma visão geral.
Se, por exemplo, sua linguagem possui funções de primeira classe, aplicação de função parcial, tipos de dados polimórficos, variáveis de tipo e tipos genéricos, você cobriu praticamente as mesmas bases que faria com a herança clássica de POO, mas usando um paradigma diferente.
Se você possui ligação tardia, tipagem dinâmica, métodos como propriedades, argumentos de função flexíveis e funções de primeira classe, também cobre os mesmos motivos, mas novamente, usando um paradigma diferente.
(Encontrar exemplos para os dois paradigmas descritos é deixado como um exercício para o leitor.)
Então, pense no tipo de semântica que você deseja, brinque com eles e veja se eles são suficientes sem herança. Se não estiverem, você pode decidir incluir a herança na mistura ou pode decidir que algo está faltando.