Рассуждать о том, необходимо ли наследование (или какая-либо отдельная особенность на самом деле) или нет, без учета остальной семантики языка, бессмысленно; ты споришь в вакууме.
Что вам нужно, так это последовательная философия языкового дизайна; язык должен уметь элегантно решать проблемы, для которых он предназначен. Модель для достижения этого может требовать или не требовать наследования, но трудно судить об этом без общей картины.
Если, например, ваш язык имеет первоклассные функции, приложение с частичными функциями, полиморфные типы данных, переменные типов и универсальные типы, вы в значительной степени охватили те же основы, что и при классическом наследовании ООП, но с использованием другой парадигмы.
Если у вас поздняя привязка, динамическая типизация, методы как свойства, гибкие аргументы функций и первоклассные функции, вы также охватите те же основания, но опять же, используя другую парадигму.
(Поиск примеров для двух изложенных парадигм оставлен в качестве упражнения для читателя.)
Итак, подумайте о том, какая семантика вам нужна, поиграйте с ними и посмотрите, достаточны ли они без наследования. Если это не так, вы можете либо решить добавить наследование в микс, либо решить, что чего-то еще не хватает.