Ну приведи пример, когда тебе в функцию нужно передавать произвольный объект. Что ты с этим объектом там делать будешь, если не знаешь что это за объект?
Ну, например пишу я клиент REST API. Вот этого конкретно:
https://api.youneedabudget.com/v1И в ответе у меня всегда верхний "Слой" - это обертка, где есть одно поле - data
Соответственно со строгой типизацией мне надо иметь под каждый ответ класс AnswerWrapper где поле data имеет тип соответствующего Answer.
С динамической у меня был бы один класс Wrapper, а в data лежали бы данные любого типа.
Профит - на 15 классов меньше.
Ну, точнее в итоге wrapper у меня сделан через AnswerWrapper<T> (generic), но прописывать чему равно T каждый раз же все равно приходится. При динамическом и так нормально было бы