По какой метрике "не настолько разные"?
Я вижу большую разницу между "мы заранее знаем, что там правильные типы — нужно просто взять функцию из таблицы, зная, что туда заранее положили подходящую" и "попытаемся ввызвать указанный метод у первого объекта, если он там вообще есть — и пусть он разбирается, умеет ли он работать с тем типом, который мы ему передадим, потому что мы всё равно не знаем, что это такое". 🤷♀️